home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / BIOS386.ARJ / BIOS.LST < prev    next >
File List  |  1992-04-07  |  814KB  |  19,198 lines

  1.       bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 1
  2.  
  3.   
  4.                 PAGE  59,132
  5.   
  6.                 ;██████████████████████████████████████████████████████████████████████████
  7.                 ;██                                         ██
  8.                 ;██                    BIOS                         ██
  9.                 ;██                                         ██
  10.                 ;██      Created:                                 ██
  11.                 ;██      Version:                                 ██
  12.                 ;██      Passes:    5           Analysis Options on: HQRS             ██
  13.                 ;██      (C)1985-1990, American Megatrends Inc. All Rights             ██
  14.                 ;██                                         ██
  15.                 ;██████████████████████████████████████████████████████████████████████████
  16.   
  17.                 .386p
  18.   
  19.                 .387
  20.   
  21.      = 0065            data_3e        equ    65h            ; (0000:0065=0)
  22.      = 0068            data_4e        equ    68h            ; (0000:0068=0FE6Eh)
  23.      = 006A            data_5e        equ    6Ah            ; (0000:006A=0F000h)
  24.      = 0070            data_6e        equ    70h            ; (0000:0070=3C0h)
  25.      = 0072            data_7e        equ    72h            ; (0000:0072=0D3D1h)
  26.      = 0074            video_hdw_off    equ    74h            ; (0000:0074=0F0A4h)
  27.      = 0078            disk_parm_off    equ    78h            ; (0000:0078=522h)
  28.      = 007C            graph_tbl_off    equ    7Ch            ; (0000:007C=4CF0h)
  29.      = 007E            graph_tbl_seg    equ    7Eh            ; (0000:007E=0C80Eh)
  30.      = 01FE            data_8e        equ    1FEh            ; (0000:01FE=0)
  31.      = 0280            data_9e        equ    280h            ; (0000:0280=0)
  32.      = 0282            data_10e    equ    282h            ; (0000:0282=0)
  33.      = 0284            data_11e    equ    284h            ; (0000:0284=0)
  34.      = 0286            data_12e    equ    286h            ; (0000:0286=0)
  35.      = 0288            data_13e    equ    288h            ; (0000:0288=0)
  36.      = 028A            data_14e    equ    28Ah            ; (0000:028A=0)
  37.      = 028C            data_15e    equ    28Ch            ; (0000:028C=0)
  38.      = 028E            data_16e    equ    28Eh            ; (0000:028E=0)
  39.      = 0818            data_18e    equ    818h            ; (0000:0818=4EF0h)
  40.      = 081A            data_19e    equ    81Ah            ; (0000:081A=7003h)
  41.      = 0820            data_20e    equ    820h            ; (0000:0820=3)
  42.      = 0822            data_21e    equ    822h            ; (0000:0822=1)
  43.      = 082C            data_22e    equ    82Ch            ; (0000:082C=2212h)
  44.      = 0472            data_24e    equ    472h            ; (0040:0472=80h)
  45.      = 20FE            data_25e    equ    20FEh            ; (0040:20FE=16h)
  46.      = 2032            data_26e    equ    2032h            ; (02F8:2032=26C1h)
  47.      = 3434            data_27e    equ    3434h            ; (02F8:3434=1703h)
  48.      = 2000            data_28e    equ    2000h            ; (B800:2000=720h)
  49.      = 0000            rom_chk_word    equ    0            ; (C000:0000=0AA55h)
  50.      = 0002            rom_chk_size    equ    2            ; (C000:0002=40h)
  51.      = 0010            data_29e    equ    10h            ; (C000:0010=20h)
  52.      = 0011            data_30e    equ    11h            ; (C000:0011=52h)
  53.      = 0012            data_31e    equ    12h            ; (C000:0012=45h)
  54.      = 0013            data_32e    equ    13h            ; (C000:0013=4553h)
  55.      = 0017            data_33e    equ    17h            ; (C000:0017=45h)
  56.      = 003E            data_34e    equ    3Eh            ; (C000:003E=39h)
  57.      = 003F            data_35e    equ    3Fh            ; (C000:003F=30h)
  58.      = 0040            data_36e    equ    40h            ; (C000:0040=0)
  59.      = 0041            data_37e    equ    41h            ; (C000:0041=0)
  60.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 2
  61.  
  62.      = 0042            data_38e    equ    42h            ; (C000:0042=20h)
  63.      = 0043            data_39e    equ    43h            ; (C000:0043=43h)
  64.      = 0063            data_40e    equ    63h            ; (C000:0063=2030h)
  65.      = 0065            data_41e    equ    65h            ; (C000:0065=54h)
  66.      = 0067            data_42e    equ    67h            ; (C000:0067=4449h)
  67.      = 0069            data_43e    equ    69h            ; (C000:0069=4E45h)
  68.      = 006C            data_44e    equ    6Ch            ; (C000:006C=4D20h)
  69.      = 006E            data_45e    equ    6Eh            ; (C000:006E=4349h)
  70.      = 0070            data_46e    equ    70h            ; (C000:0070=52h)
  71.      = 0072            data_47e    equ    72h            ; (C000:0072=5953h)
  72.      = 0075            data_48e    equ    75h            ; (C000:0075=54h)
  73.      = 0078            data_49e    equ    78h            ; (C000:0078=2053h)
  74.      = 007A            data_50e    equ    7Ah            ; (C000:007A=4E49h)
  75.      = 007C            data_51e    equ    7Ch            ; (C000:007C=2E43h)
  76.      = 007E            data_52e    equ    7Eh            ; (C000:007E=0A0Dh)
  77.      = 008B            data_53e    equ    8Bh            ; (C000:008B=74h)
  78.      = 008F            data_54e    equ    8Fh            ; (C000:008F=38h)
  79.      = 0090            data_55e    equ    90h            ; (C000:0090=2D37h)
  80.      = 0092            data_57e    equ    92h            ; (C000:0092=3931h)
  81.      = 0094            data_58e    equ    94h            ; (C000:0094=3039h)
  82.      = 0096            data_59e    equ    96h            ; (C000:0096=20h)
  83.      = 0097            data_60e    equ    97h            ; (C000:0097=51h)
  84.      = 0098            data_61e    equ    98h            ; (C000:0098=75h)
  85.      = 00A0            data_62e    equ    0A0h            ; (C000:00A0=6Fh)
  86.   
  87.                 ;--------------------------------------------------------------    seg_a  ----
  88.   
  89.                 seg_a        segment    at 0
  90.   
  91. 0000:0000  B4AC            vector_0h_off    dw    0B4ACh            ; Divide error
  92. 0000:0002  11FD            vector_0h_seg    dw    11FDh
  93. 0000:0004  06F4            vector_1h_off    dw    6F4h            ; Single Step
  94. 0000:0006  0070            vector_1h_seg    dw    70h
  95. 0000:0008  0016            vector_2h_off    dw    16h            ; NMI
  96. 0000:000A  1033            vector_2h_seg    dw    1033h
  97. 0000:000C  06F4            vector_3h_off    dw    6F4h            ; Debug
  98. 0000:000E  0070            vector_3h_seg    dw    70h
  99. 0000:0010  06F4            vector_4h_off    dw    6F4h            ; Overflow
  100. 0000:0012  0070            vector_4h_seg    dw    70h
  101. 0000:0014  FF54            vector_5h_off    dw    0FF54h            ; Print Screen
  102. 0000:0016  F000            vector_5h_seg    dw    0F000h
  103. 0000:0018  EB29            vector_6h_off    dw    0EB29h
  104. 0000:001A  F000            vector_6h_seg    dw    0F000h
  105. 0000:001C  EA7D            vector_7h_off    dw    0EA7Dh
  106. 0000:001E  F000            vector_7h_seg    dw    0F000h
  107. 0000:0020  003C            vector_8h_off    dw    3Ch            ; Timer Ticks
  108. 0000:0022  1033            vector_8h_seg    dw    1033h
  109. 0000:0024  0452            vector_9h_off    dw    452h            ; Keyboard
  110.                                         ;  xref F000:E929
  111. 0000:0026  D3D1            vector_9h_seg    dw    0D3D1h            ;  xref F000:E92F
  112. 0000:0028  0057            vector_Ah_off    dw    57h
  113. 0000:002A  1033            vector_Ah_seg    dw    1033h
  114. 0000:002C  006F            vector_Bh_off    dw    6Fh            ; Serial
  115. 0000:002E  1033            vector_Bh_seg    dw    1033h
  116. 0000:0030  1EC3            vector_Ch_off    dw    1EC3h            ; Serial
  117. 0000:0032  D00F            vector_Ch_seg    dw    0D00Fh
  118. 0000:0034  CAB5            vector_Dh_off    dw    0CAB5h            ; Disk
  119.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 3
  120.  
  121. 0000:0036  11FD            vector_Dh_seg    dw    11FDh
  122. 0000:0038  00B7            vector_Eh_off    dw    0B7h            ; Diskette
  123. 0000:003A  1033            vector_Eh_seg    dw    1033h
  124. 0000:003C  06F4            vector_Fh_off    dw    6F4h            ; Bad Interrupt
  125. 0000:003E  0070            vector_Fh_seg    dw    70h
  126. 0000:0040  02E7            vectr_10h_off    dw    2E7h            ; Video
  127.                                         ;  xref F000:D1AB, F000:D1FD
  128. 0000:0042  D3D1            vectr_10h_seg    dw    0D3D1h            ; Data table (indexed access)
  129.                                         ;  xref F000:BF3A, F000:D1B4
  130.                                         ;       F000:D203
  131. 0000:0044  F84D            vectr_11h_off    dw    0F84Dh            ; Equipment
  132. 0000:0046  F000            vectr_11h_seg    dw    0F000h
  133. 0000:0048  F841            vectr_12h_off    dw    0F841h            ; Memory Size
  134. 0000:004A  F000            vectr_12h_seg    dw    0F000h
  135. 0000:004C  0774            vectr_13h_off    dw    774h            ; Disk Services
  136. 0000:004E  0070            vectr_13h_seg    dw    70h
  137.   
  138.                         org    400h
  139.   
  140. 0000:0400  F8 03 F8 02 E8 02            db    0F8h, 3, 0F8h, 2, 0E8h, 2
  141. 0000:0406  00 00 78 03 00 00            db    0, 0, 78h, 3, 0, 0
  142. 0000:040C  00 00 00 00 61 46            db    0, 0, 0, 0, 61h, 46h
  143. 0000:0412  BF                    db    0BFh
  144. 0000:0413  0280            main_ram_size_    dw    280h
  145. 0000:0415  00 00 80 00 00 24            db    0, 0, 80h, 0, 0, 24h
  146. 0000:041B  00 24 00 0D 1C 79            db    0, 24h, 0, 0Dh, 1Ch, 79h
  147. 0000:0421  15 67 22 08 0E 08            db    15h, 67h, 22h, 8, 0Eh, 8
  148. 0000:0427  0E 08 0E 08 0E 08            db    0Eh, 8, 0Eh, 8, 0Eh, 8
  149. 0000:042D  0E 08 0E 75 16 6E            db    0Eh, 8, 0Eh, 75h, 16h, 6Eh
  150. 0000:0433  31 62 30 69 17 6F            db    31h, 62h, 30h, 69h, 17h, 6Fh
  151. 0000:0439  18 73 1F 70 19 00            db    18h, 73h, 1Fh, 70h, 19h, 0
  152. 0000:043F  00 27 00 C0 00 00            db    0, 27h, 0, 0C0h, 0, 0
  153. 0000:0445  00 00 00 00 03 50            db    0, 0, 0, 0, 3, 50h
  154. 0000:044B  00 A0 10 00 00 4F            db    0, 0A0h, 10h, 0, 0, 4Fh
  155. 0000:0451  18 00 00 00 00 00            db    18h, 0, 0, 0, 0, 0
  156. 0000:0457  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  157. 0000:045D  00 00 00 00 20 00            db    0, 0, 0, 0, 20h, 0
  158. 0000:0463  D4 03                db    0D4h, 3
  159. 0000:0465  29 30                db    29h, 30h
  160. 0000:0467  0522            @gen_io_ptr_    dw    522h
  161. 0000:0469  87 90 FF                db    87h, 90h, 0FFh
  162. 0000:046C  BE78            timer_low_    dw    0BE78h
  163. 0000:046E  0F 00 00 00                db    0Fh, 0, 0, 0
  164. 0000:0472  1200            warm_boot_flag_    dw    1200h            ; Data table (indexed access)
  165. 0000:0474  00 01 00 00 14 14            db    0, 1, 0, 0, 14h, 14h
  166. 0000:047A  14 34 01 01 01 01            db    14h, 34h, 1, 1, 1, 1
  167. 0000:0480  1E 00 3E 00 18 10            db    1Eh, 0, 3Eh, 0, 18h, 10h
  168. 0000:0486  00 60 09 11 0B 81            db    0, 60h, 9, 11h, 0Bh, 81h
  169. 0000:048C  50 00 00                db    50h, 0, 0
  170. 0000:048F  33                    db    33h
  171. 0000:0490  02            hdsk0_media_st_    db    2
  172. 0000:0491  07 00 00 00 00 10            db    7, 0, 0, 0, 0, 10h
  173. 0000:0497  10 00 00 00 00 00            db    10h, 0, 0, 0, 0, 0
  174. 0000:049D  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  175. 0000:04A3  00 00 00 00 00 B8            db    0, 0, 0, 0, 0, 0B8h
  176. 0000:04A9  3C 0E C8 00 00 00            db    3Ch, 0Eh, 0C8h, 0, 0, 0
  177. 0000:04AF  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  178.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 4
  179.  
  180. 0000:04B5  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  181. 0000:04BB  00                    db    0
  182. 0000:04BC  0014[00]                db    20 dup (0)
  183.   
  184.                 seg_a        ends
  185.   
  186.   
  187.   
  188.                 ;--------------------------------------------------------------    seg_b  ----
  189.   
  190.                 seg_b        segment    at 40h
  191.   
  192.   
  193.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  194.                                         ; █    PRIMARY BIOS DATA AREA     █
  195.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  196.   
  197. 0040:0000  03F8            @rs232_port_1    dw    3F8h            ; RS-232 port addresses
  198.                                         ;  xref F000:AA6E, F000:AA75
  199.                                         ;       F000:AA89, F000:C5AF
  200. 0040:0002  02F8            @rs232_port_2    dw    2F8h
  201. 0040:0004  02E8            @rs232_port_3    dw    2E8h
  202. 0040:0006  0000            @rs232_port_4    dw    0
  203. 0040:0008  0378            @prn_port_1    dw    378h            ; Printer port addresses
  204. 0040:000A  0000            @prn_port_2    dw    0
  205. 0040:000C  0000            @prn_port_3    dw    0
  206. 0040:000E  0000            BIOS_data_seg    dw    0            ; Extended BIOS data (PS/2)or printer
  207.                                         ;   Printer 4 (PC,XT,AT & compatibles)
  208. 0040:0010  4661            equip_bits    dw    4661h            ; Equipment installed info bits
  209.                                         ;  15  14  13   12   11  10   9   8
  210.                                         ;  \    /      game  \       /
  211.                                         ;  # of print  port  # of RS-232
  212.                                         ;  ports 0-3   used   ports 0-4
  213.   
  214.                                         ;  7   6    5    4    3   2   1   0
  215.                                         ;  \   /    \    /    \   / Math  |
  216.                                         ;  # of   video mode  RAM    uP  no
  217.                                         ;  disk-  at boot up  00=16K    dsk
  218.                                         ;  ettes  00=EGA      01=32K   driv
  219.                                         ;   1-4   01=CGA-40   10=48K   if 0
  220.                                         ;  if bit 10=CGA-80   11=64K
  221.                                         ;  0 = 1  11=MDA-80   (old PCs)
  222.   
  223.                                         ; Note: bit 13=modem on PC lap-tops
  224.                                         ;       bit  2=mouse on PS/2
  225.                                         ;
  226.                                         ;  xref F000:8567, F000:9168
  227.                                         ;       F000:9176, F000:B1BB
  228.                                         ;       F000:F854
  229. 0040:0012  BF            init_test_flag    db    0BFh            ; Initialization test
  230.                                         ;  xref F000:914A, F000:945A
  231.                                         ;       F000:ABA8, F000:ACEF
  232. 0040:0013  0280            main_ram_size    dw    280h            ; Base memory size 0-1Meg, 1K steps
  233.                                         ;  xref F000:AC5A, F000:ACD1
  234.                                         ;       F000:BD82, F000:E9A3
  235.                                         ;       F000:F846
  236. 0040:0015  0000            chan_io_size    dw    0            ; Channel i/o size
  237.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 5
  238.  
  239.   
  240.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  241.                                         ; █         KEYBOARD DATA         █
  242.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  243.   
  244. 0040:0017  80            keybd_flags_1    db    80h            ; Keyboard flag bits
  245.                                         ;   7   6   5   4    3   2   1   0
  246.                                         ; ins- cap num scrl alt ctl lef rig
  247.                                         ; sert --toggles--- --shifts down--
  248.   
  249.                                         ;  xref F000:9B70, F000:9BDF
  250.                                         ;       F000:9C0A, F000:9C4E
  251.                                         ;       F000:9C96, F000:9CAC
  252.                                         ;       F000:9D24, F000:9DE2
  253.                                         ;       F000:9E01, F000:9E25
  254.                                         ;       F000:9E3F, F000:9E9B
  255.                                         ;       F000:9ED3, F000:9F58
  256.                                         ;       F000:9F5F, F000:9FAC
  257.                                         ;       F000:A10E
  258. 0040:0018  00            keybd_flags_2    db    0            ; Keyboard flag bits
  259.                                         ;    7     6     5     4
  260.                                         ; insert  caps  num  scroll
  261.                                         ; ------now depressed------
  262.   
  263.                                         ;    3     2     1     0
  264.                                         ;  pause  sys   left right
  265.                                         ;  lock request -alt-down-
  266.                                         ;
  267.                                         ;  xref F000:9BC3, F000:9BCD
  268.                                         ;       F000:9BFA, F000:9BFE
  269.                                         ;       F000:9C35, F000:9C67
  270.                                         ;       F000:9C79, F000:9C80
  271.                                         ;       F000:9CA2, F000:9D41
  272.                                         ;       F000:9D5D, F000:9E91
  273.                                         ;       F000:9E97, F000:9EA5
  274.                                         ;       F000:9EB0, F000:9EC7
  275.                                         ;       F000:9ECE, F000:A0FA
  276. 0040:0019  00            keybd_alt_num    db    0            ; Alt & digit pad number buffr area
  277.                                         ;  xref F000:9C16, F000:9CD6
  278.                                         ;       F000:9CF7, F000:9D04
  279.                                         ;       F000:9D0A
  280. 0040:001A  0024            keybd_q_head    dw    24h            ; Head ptr of circular key queue
  281.                                         ;   empty if head ptr = tail ptr
  282.                                         ;  xref F000:941C, F000:9D79
  283.                                         ;       F000:9F84, F000:A05F
  284.                                         ;       F000:A0B7, F000:A144
  285.                                         ;       F000:A15C
  286. 0040:001C  0024            keybd_q_tail    dw    24h            ; Tail ptr of circular key queue
  287.                                         ;   empty if head ptr = tail ptr
  288.                                         ;  xref F000:941F, F000:9D7C
  289.                                         ;       F000:9F7C, F000:9F91
  290.                                         ;       F000:A063, F000:A0AF
  291.                                         ;       F000:A0BF, F000:A148
  292. 0040:001E  1C0D 1579 2267    keybd_queue    dw    1C0Dh, 1579h, 2267h    ; 15 key queue for keyboard
  293. 0040:0024  0E08 0E08 0E08            dw    0E08h, 0E08h, 0E08h
  294. 0040:002A  0E08 0E08 0E08            dw    0E08h, 0E08h, 0E08h
  295. 0040:0030  1675 316E 3062            dw    1675h, 316Eh, 3062h
  296.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 6
  297.  
  298. 0040:0036  1769 186F 1F73            dw    1769h, 186Fh, 1F73h
  299. 0040:003C  1970                    dw    1970h
  300.   
  301.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  302.                                         ; █          DISK DATA            █
  303.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  304.   
  305. 0040:003E  00            dsk_recal_stat    db    0            ;  Recalibrate floppy drive bits
  306.                                         ;     3       2       1       0
  307.                                         ;  drive-3 drive-2 drive-1 drive-0
  308.   
  309.                                         ;  bit 7 = interrupt flag
  310.                                         ;
  311.                                         ;  xref F000:AECC, F000:B773
  312.                                         ;       F000:E837
  313. 0040:003F  00            dsk_motor_stat    db    0            ; Motor running status & disk write
  314.                                         ;  bit 7=1 disk write in progress
  315.                                         ;  bits 6&5 = drive selected 0 to 3
  316.                                         ;     3       2       1       0
  317.                                         ;  drive-3 drive-2 drive-1 drive-0
  318.                                         ;  --------- 1=motor on-----------
  319.   
  320.                                         ;  xref F000:B950, F000:B95A
  321.                                         ;       F000:B960, F000:B970
  322.                                         ;       F000:B975, F000:B988
  323.                                         ;       F000:B9BA, F000:ED20
  324. 0040:0040  1D            dsk_motor_tmr    db    1Dh            ; Motor timer, at 0, turn off motor
  325.                                         ;  xref F000:AEC2, F000:AFEF
  326.                                         ;       F000:B94B, F000:ED15
  327. 0040:0041  00            dsk_ret_code    db    0            ; Controller return code
  328.                                         ;  00h = ok
  329.                                         ;  01h = bad command or parameter
  330.                                         ;  02h = can't find address mark
  331.                                         ;  03h = can't write, protected dsk
  332.                                         ;  04h = sector not found
  333.                                         ;  08h = DMA overrun
  334.                                         ;  09h = DMA attempt over 64K bound
  335.                                         ;  10h = bad CRC on disk read
  336.                                         ;  20h = controller failure
  337.                                         ;  40h = seek failure
  338.                                         ;  80h = timeout, no response
  339.   
  340.                                         ;  xref F000:AEA3, F000:AEAD
  341.                                         ;       F000:AEDE, F000:AEF1
  342.                                         ;       F000:AF23, F000:AF34
  343.                                         ;       F000:AF51, F000:AFDB
  344.                                         ;       F000:AFFE, F000:B0F5
  345.                                         ;       F000:B1AD, F000:B7C7
  346. 0040:0042  C0            dsk_status_1    db    0C0h            ; Status bytes-disk controller chip
  347.                                         ;  Note: 7 info bytes returned from
  348.                                         ;  controller are saved here. Refer
  349.                                         ;  to the NEC uPD 765 chip manual
  350.                                         ;  for the specific info, depending
  351.                                         ;  on the previous command issued.
  352. 0040:0043  00            dsk_status_2    db    0
  353. 0040:0044  00            dsk_status_3    db    0
  354. 0040:0045  00            dsk_status_4    db    0
  355.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 7
  356.  
  357. 0040:0046  00            dsk_status_5    db    0
  358. 0040:0047  00            dsk_status_6    db    0
  359. 0040:0048  00            dsk_status_7    db    0
  360.   
  361.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  362.                                         ; █          VIDEO DATA           █
  363.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  364.   
  365. 0040:0049  03            video_mode    db    3            ; Present display mode(see int 10h)
  366.                                         ;  xref F000:85A7, F000:8720
  367.                                         ;       F000:872E, F000:874E
  368.                                         ;       F000:87C9, F000:8807
  369.                                         ;       F000:8919, F000:894A
  370.                                         ;       F000:8951, F000:899A
  371.                                         ;       F000:8A03, F000:8A36
  372.                                         ;       F000:8A3D, F000:8A79
  373.                                         ;       F000:8AAA, F000:8AB1
  374.                                         ;       F000:8B0D, F000:8C36
  375.                                         ;       F000:8CBD, F000:8CC4
  376.                                         ;       F000:8CFC, F000:9D4D
  377. 0040:004A  0050            video_columns    dw    50h            ; Number of columns
  378.                                         ;  xref F000:85D5, F000:869B
  379.                                         ;       F000:873B, F000:87F7
  380.                                         ;       F000:881D, F000:8833
  381.                                         ;       F000:8933, F000:898D
  382.                                         ;       F000:8A20, F000:8A94
  383.                                         ;       F000:8AFD, F000:8C39
  384.                                         ;       F000:8CAC, F000:8CD5
  385. 0040:004C  10A0            video_buf_siz    dw    10A0h            ; Video buffer size in bytes
  386.                                         ;   Note: size may be rounded up to
  387.                                         ;   the nearest 2K boundary.  For
  388.                                         ;   example, 80x25 mode=4000 bytes,
  389.                                         ;   but value may be 4096.
  390.                                         ;  xref F000:85F0, F000:8797
  391.                                         ;       F000:8940, F000:8A2D
  392.                                         ;       F000:8AA1
  393. 0040:004E  0000            video_segment    dw    0            ; Segment of active video memory
  394.                                         ;   MDA=0B000h, CGA=0B800h, etc.
  395.   
  396.                                         ;  xref F000:85F5, F000:86A3
  397.                                         ;       F000:8719, F000:879B
  398.                                         ;       F000:8827
  399. 0040:0050  184F            vid_curs_pos0    dw    184Fh            ; Cursor position page 0
  400.                                         ;   bits 15-8=row, bits 7-0=column
  401.                                         ;  xref F000:8987, F000:8AF7
  402. 0040:0052  0000            vid_curs_pos1    dw    0            ; Cursor position page 1
  403.                                         ;   bits 15-8=row, bits 7-0=column
  404. 0040:0054  0000            vid_curs_pos2    dw    0            ; Cursor position page 2
  405.                                         ;   bits 15-8=row, bits 7-0=column
  406. 0040:0056  0000            vid_curs_pos3    dw    0            ; Cursor position page 3
  407.                                         ;   bits 15-8=row, bits 7-0=column
  408. 0040:0058  0000            vid_curs_pos4    dw    0            ; Cursor position page 4
  409.                                         ;   bits 15-8=row, bits 7-0=column
  410. 0040:005A  0000            vid_curs_pos5    dw    0            ; Cursor position page 5
  411.                                         ;   bits 15-8=row, bits 7-0=column
  412. 0040:005C  0000            vid_curs_pos6    dw    0            ; Cursor position page 6
  413.                                         ;   bits 15-8=row, bits 7-0=column
  414.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 8
  415.  
  416. 0040:005E  0000            vid_curs_pos7    dw    0            ; Cursor position page 7
  417.                                         ;   bits 15-8=row, bits 7-0=column
  418.   
  419. 0040:0060  2000            vid_curs_mode    dw    2000h            ; Active cursor, start & end lines
  420.                                         ;   bits 12 to 8 for starting line
  421.                                         ;   bits 4  to 0 for ending line
  422.                                         ;  xref F000:863B, F000:866B
  423.                                         ;       F000:86D8
  424. 0040:0062  00            video_page    db    0            ; Present page
  425.                                         ;  xref F000:85F8, F000:868A
  426.                                         ;       F000:8791, F000:8BFA
  427.                                         ;       F000:8C42
  428. 0040:0063  03D4            @video_port    dw    3D4h            ; Video controller base I/O address
  429.                                         ;  xref F000:85A3, F000:86AD
  430.                                         ;       F000:86E1, F000:8958
  431.                                         ;       F000:8A52, F000:8AC4
  432.                                         ;       F000:8BBC
  433. 0040:0065  29            video_mode_reg    db    29h            ; Hardware mode register bits
  434.                                         ;  xref F000:85BD, F000:865C
  435.                                         ;       F000:9D54
  436. 0040:0066  30            video_color    db    30h            ; Color set in CGA modes
  437.                                         ;  xref F000:85B2, F000:8665
  438.                                         ;       F000:8BA0, F000:8BB9
  439.   
  440.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  441.                                         ; █         GENERAL DATA          █
  442.                                         ; █ Note: next 5 bytes also used  █
  443.                                         ; █    for cassette interface in  █
  444.                                         ; █    older PCs.                 █
  445.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  446.   
  447. 0040:0067  0522            @gen_io_ptr    dw    522h            ; ROM initialization pointer
  448.                                         ;  xref F000:8FA3, F000:AB6A
  449.                                         ;       F000:AD07, F000:BD7F
  450.                                         ;       F000:BE54, F000:CACC
  451.                                         ;       F000:CB9B
  452. 0040:0069  9087            @gen_io_seg    dw    9087h            ; ROM i/o segment
  453.                                         ;  xref F000:AD45, F000:CAD2
  454.                                         ;       F000:CB96
  455. 0040:006B  FF            gen_int_occured    db    0FFh            ; Unused interrupt occurred
  456.                                         ;  xref F000:EAAC
  457. 0040:006C  BE8B            timer_low    dw    0BE8Bh            ; Timer, low word, cnts every 55 ms
  458.                                         ;  xref F000:D1E1, F000:ED49
  459.                                         ;       F000:ED56
  460. 0040:006E  000F            timer_hi    dw    0Fh            ; Timer, high word
  461.                                         ;  xref F000:ED4D, F000:ED5A
  462. 0040:0070  00            timer_rolled    db    0            ; Timer overflowed, non-zero when
  463.                                         ;  more than 24 hours have elapsed
  464.                                         ;  xref F000:ED45, F000:ED53
  465. 0040:0071  00            keybd_break    db    0            ; Bit 7 set if break key depressed
  466.                                         ;  xref F000:9D7F
  467. 0040:0072  1200            warm_boot_flag    dw    1200h            ; Boot (reset) type
  468.                                         ;   1234h=warm boot, no memory test
  469.                                         ;   4321h=boot & save memory
  470.                                         ;         (PS/2 with MCA only)
  471.                                         ;  xref F000:9192, F000:9CB7
  472.                                         ;       F000:C082
  473.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 9
  474.  
  475.   
  476.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  477.                                         ; █        HARD DISK DATA         █
  478.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  479.   
  480. 0040:0074  00            hdsk_status_1    db    0            ; Hard disk status
  481.                                         ;  00h = ok
  482.                                         ;  01h = bad command or parameter
  483.                                         ;  02h = can't find address mark
  484.                                         ;  03h = can't write, protected dsk
  485.                                         ;  04h = sector not found
  486.                                         ;  05h = reset failure
  487.                                         ;  07h = activity failure
  488.                                         ;  08h = DMA overrun
  489.                                         ;  09h = DMA attempt over 64K bound
  490.                                         ;  0Ah = bad sector flag
  491.                                         ;  0Bh = removed bad track
  492.                                         ;  0Dh = wrong # of sectors, format
  493.                                         ;  0Eh = removed control data addr
  494.                                         ;         mark
  495.                                         ;  0Fh = out of limit DMA
  496.                                         ;         arbitration level
  497.                                         ;  10h = bad CRC or ECC, disk read
  498.                                         ;  11h = bad ECC corrected data
  499.                                         ;  20h = controller failure
  500.                                         ;  40h = seek failure
  501.                                         ;  80h = timeout, no response
  502.                                         ;  AAh = not ready
  503.                                         ;  BBh = error occurred, undefined
  504.                                         ;  CCh = write error, selected dsk
  505.                                         ;  E0h = error register = 0
  506.                                         ;  FFh = disk sense failure
  507.                                         ;
  508.                                         ;  xref F000:A1F5, F000:A238
  509.                                         ;       F000:A2AE, F000:A2B3
  510.                                         ;       F000:A2B8, F000:A3CB
  511.                                         ;       F000:A458, F000:A48C
  512.                                         ;       F000:A554, F000:A55E
  513.                                         ;       F000:A58C, F000:A5DD
  514.                                         ;       F000:A612, F000:A640
  515.                                         ;       F000:A6AB, F000:A6DB
  516.                                         ;       F000:A714, F000:A73F
  517.                                         ;       F000:A762, F000:A7C0
  518.                                         ;       F000:A823
  519. 0040:0075  01            hdsk_count    db    1            ; Number of hard disk drives
  520.                                         ;  xref F000:A28C, F000:A2A0
  521.                                         ;       F000:A3C5, F000:A65B
  522. 0040:0076  00            hdsk_head_ctrl    db    0            ; Head control (XT only)
  523.                                         ;  xref F000:A43A, F000:A4AA
  524.                                         ;       F000:A83B, F000:A842
  525. 0040:0077  00            hdsk_ctrl_port    db    0            ; Hard disk control port (XT only)
  526.   
  527.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  528.                                         ; █ I/O PORT TIMER, KEYBOARD DATA █
  529.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  530.   
  531. 0040:0078  14            prn_timeout_1    db    14h            ; Countdown timer waits for printer
  532.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 10
  533.  
  534.                                         ;   to respond (printer 1)
  535.                                         ;  xref F000:F88B
  536. 0040:0079  14            prn_timeout_2    db    14h            ; Countdown timer waits for printer
  537.                                         ;   to respond
  538. 0040:007A  14            prn_timeout_3    db    14h
  539. 0040:007B  34            prn_timeout_4    db    34h
  540. 0040:007C  01            rs232_timeout_1    db    1            ; Countdown timer waits for RS-232
  541.                                         ;   port to respond (port 1)
  542.                                         ;  xref F000:F8EA
  543. 0040:007D  01            rs232_timeout_2    db    1            ; Countdown timer waits for RS-232
  544.                                         ;   port to respond
  545. 0040:007E  01            rs232_timeout_3    db    1
  546. 0040:007F  01            rs232_timeout_4    db    1
  547. 0040:0080  001E            @keybd_begin    dw    1Eh            ; Ptr to beginning of keybd queue
  548.                                         ;  xref F000:9422, F000:9D76
  549.                                         ;       F000:A03F
  550. 0040:0082  003E            @keybd_end    dw    3Eh            ; Ptr to end of keyboard queue
  551.                                         ;  xref F000:9428, F000:A039
  552.   
  553.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  554.                                         ; █  ADVANCED VIDEO DATA, EGA/VGA █
  555.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  556.   
  557. 0040:0084  18            video_rows    db    18h            ; Rows of characters on display - 1
  558.                                         ;  xref F000:858F, F000:9163
  559.                                         ;       F000:ECB4
  560. 0040:0085  0010            video_pixels    dw    10h            ; Number of pixels per charactr * 8
  561. 0040:0087  60            video_options    db    60h            ; Display adapter options
  562.                                         ;   bit 7 = clear RAM
  563.                                         ;   bits 6,5 = memory on adapter
  564.                                         ;               00 - 64K
  565.                                         ;               01 - 128K
  566.                                         ;               10 - 192K
  567.                                         ;               11 - 256K
  568.                                         ;   bit 4 = unused
  569.                                         ;   bit 3 = 0 if EGA/VGA active
  570.                                         ;   bit 2 = wait for display enable
  571.                                         ;   bit 1 = 1 - mono monitor
  572.                                         ;         = 0 - color monoitor
  573.                                         ;   bit 0 = 0 - handle cursor, CGA
  574. 0040:0088  09            video_switches    db    9            ; Switch setting bits from adapter
  575.                                         ;   bits 7-4 = feature connector
  576.                                         ;   bits 3-0 = option switches
  577. 0040:0089  11            video_1_reservd    db    11h            ; Video reserved 1, EGA/VGA control
  578.                                         ;   bit 7 = 200 line mode
  579.                                         ;   bits 6,5 = unused
  580.                                         ;   bit 4 = 400 line mode
  581.                                         ;   bit 3 = no palette load
  582.                                         ;   bit 2 = mono monitor
  583.                                         ;   bit 1 = gray scale
  584.                                         ;   bit 0 = unused
  585. 0040:008A  0B            video_2_reservd    db    0Bh            ; Video reserved 2
  586.   
  587.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  588.                                         ; █ OTHER FLOPPY & HARD DISK DATA █
  589.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  590.   
  591.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 11
  592.  
  593. 0040:008B  81            dsk_data_rate    db    81h            ; Last data rate for diskette
  594.                                         ;  bits 7 & 6 = 00 for 500K bit/sec
  595.                                         ;             = 01 for 300K bit/sec
  596.                                         ;             = 10 for 250K bit/sec
  597.                                         ;  bits 5 & 4 = step rate
  598. 0040:008C  50            hdsk_status_2    db    50h            ; Hard disk status
  599.                                         ;  xref F000:A4FC, F000:A580
  600.                                         ;       F000:A6D5, F000:A711
  601.                                         ;       F000:A75C, F000:A772
  602. 0040:008D  00            hdsk_error    db    0            ; Hard disk error
  603.                                         ;  xref F000:A277, F000:A5D1
  604.                                         ;       F000:A797
  605. 0040:008E  00            hdsk_int_flags    db    0            ; Set for hard disk interrupt flag
  606.                                         ;  xref F000:A25A, F000:A745
  607.                                         ;       F000:A7D3, F000:E84B
  608. 0040:008F  33            hdsk_options    db    33h            ; Bit 0 = 1 when using 1 controller
  609.                                         ;  card for both hard disk & floppy
  610.                                         ;  xref F000:AE7D
  611. 0040:0090  02            hdsk0_media_st    db    2            ; Media state for drive 0
  612.                                         ;  xref F000:BEAB
  613. 0040:0091  07            hdsk1_media_st    db    7            ; Media state for drive 1
  614.                                         ;     7      6      5      4
  615.                                         ;  data xfer rate  two   media
  616.                                         ;   00=500K bit/s  step  known
  617.                                         ;   01=300K bit/s
  618.                                         ;   10=250K bit/s
  619.                                         ;     3      2      1      0
  620.                                         ;  unused  -----state of drive-----
  621.                                         ;          bits floppy  drive state
  622.                                         ;          000=  360K in 360K, ?
  623.                                         ;          001=  360K in 1.2M, ?
  624.                                         ;          010=  1.2M in 1.2M, ?
  625.                                         ;          011=  360K in 360K, ok
  626.                                         ;          100=  360K in 1.2M, ok
  627.                                         ;          101=  1.2M in 1.2M, ok
  628.                                         ;          111=  state not defined
  629.   
  630. 0040:0092  00            hdsk0_start_st    db    0            ; Start state for drive 0
  631. 0040:0093  00            hdsk1_start_st    db    0            ; Start state for drive 1
  632. 0040:0094  00            hdsk0_cylinder    db    0            ; Track number for drive 0
  633. 0040:0095  00            hdsk1_cylinder    db    0            ; Track number for drive 1
  634.   
  635.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  636.                                         ; █    ADVANCED KEYBOARD DATA     █
  637.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  638.   
  639. 0040:0096  10            keybd_flags_3    db    10h            ; Special keyboard type and mode
  640.                                         ;  bit 7 Reading ID of keyboard
  641.                                         ;      6 last char is 1st ID char
  642.                                         ;      5 force num lock
  643.                                         ;      4 101/102 key keyboard
  644.                                         ;      3 right alt key down
  645.                                         ;      2 right ctrl key down
  646.                                         ;      1 E0h hidden code last
  647.                                         ;      0 E1h hidden code last
  648.                                         ;
  649.                                         ;  xref F000:9B43, F000:9B4C
  650.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 12
  651.  
  652.                                         ;       F000:9B55, F000:9B5C
  653.                                         ;       F000:9B69, F000:9B78
  654.                                         ;       F000:9B84, F000:9B8F
  655.                                         ;       F000:9BF1, F000:9C04
  656.                                         ;       F000:9C5E, F000:9DF4
  657.                                         ;       F000:9E79, F000:9FA4
  658.                                         ;       F000:A06A, F000:A070
  659.                                         ;       F000:A076, F000:A107
  660. 0040:0097  10            keybd_flags_4    db    10h            ; Keyboard Flags (advanced keybd)
  661.                                         ;   7      6       5     4  3 2 1 0
  662.                                         ; xmit   char   Resend  Ack   \   /
  663.                                         ; error was ID  Rec'd  Rec'd   LEDs
  664.   
  665.                                         ;  xref F000:9B18, F000:9B23
  666.                                         ;       F000:9FB6, F000:9FBF
  667.                                         ;       F000:9FC6, F000:9FDC
  668.                                         ;       F000:9FE1, F000:9FE5
  669.                                         ;       F000:9FEF, F000:9FFB
  670.                                         ;       F000:A045, F000:A04C
  671.   
  672.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  673.                                         ; █  REAL-TIME CLOCK & LAN DATA   █
  674.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  675.   
  676. 0040:0098  0000            @timer_wait_off    dw    0            ; Ptr offset to wait done flag
  677.                                         ;  xref F000:CBFF
  678. 0040:009A  0000            @timer_wait_seg    dw    0            ; Ptr segment to wait done flag
  679.                                         ;  xref F000:CC03
  680. 0040:009C  0000            timer_clk_low    dw    0            ; Timer low word, 1 microsecond clk
  681.                                         ;  xref F000:CC07, F000:EA41
  682. 0040:009E  0000            timer_clk_hi    dw    0            ; Timer high word
  683.                                         ;  xref F000:CC0B, F000:EA47
  684. 0040:00A0  00            timer_clk_flag    db    0            ; Timer flag 00h = post acknowledgd
  685.                                         ;            01h = busy
  686.                                         ;            80h = posted
  687.                                         ;  xref F000:CBEF, F000:CBFA
  688. 0040:00A1  00            lan_1        db    0            ; Local area network bytes (7)
  689. 0040:00A2  00            lan_2        db    0
  690. 0040:00A3  00            lan_3        db    0
  691. 0040:00A4  00            lan_4        db    0
  692. 0040:00A5  00            lan_5        db    0
  693. 0040:00A6  00            lan_6        db    0
  694. 0040:00A7  00            lan_7        db    0
  695.   
  696.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  697.                                         ; █   MORE ADVANCED VIDEO DATA    █
  698.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  699.   
  700. 0040:00A8  C80E3CB8        @video_sav_tbls    dd    0C80E3CB8h        ; Pointer to a save table of more
  701.                                         ; pointers for the video system
  702.                                         ;            SAVE TABLE
  703.                                         ;  offset type    pointer to
  704.                                         ;  ────── ──── ────────────────────
  705.                                         ;    0     dd  Video parameters
  706.                                         ;    4     dd  Parms save area
  707.                                         ;    8     dd  Alpha char set
  708.                                         ;   0Ch    dd  Graphics char set
  709.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 13
  710.  
  711.                                         ;   10h    dd  2nd save ptr table
  712.                                         ;   14h    dd  reserved (0:0)
  713.                                         ;   18h    dd  reserved (0:0)
  714.                                         ;
  715.                                         ;  2ND SAVE TABLE (from ptr above)
  716.                                         ;  offset type functions & pointers
  717.                                         ;  ────── ──── ────────────────────
  718.                                         ;    0     dw  Bytes in this table
  719.                                         ;    2     dd  Combination code tbl
  720.                                         ;    6     dd  2nd alpha char set
  721.                                         ;   0Ah    dd  user palette tbl
  722.                                         ;   0Eh    dd  reserved (0:0)
  723.                                         ;   12h    dd  reserved (0:0)
  724.                                         ;   16h    dd  reserved (0:0)
  725.   
  726. 0040:00AC  0054[00]                db    84 dup (0)
  727. 0040:0100  00            prn_scrn_stat_b    db    0
  728.   
  729.                 seg_b        ends
  730.   
  731.   
  732.   
  733.                 ;--------------------------------------------------------------    seg_c  ----
  734.   
  735.                 seg_c        segment    at 50h
  736.   
  737. 0050:0000  00            prn_scrn_stat    db    0            ; Print screen status
  738.                                         ;    00h = Print screen ready
  739.                                         ;    01h = Print screen in progress
  740.                                         ;    FFh = Error occurred
  741.                                         ;  xref F000:EC63, F000:ECCC
  742. 0050:0001  00                    db    0
  743.   
  744.                 seg_c        ends
  745.   
  746.   
  747.   
  748.                 ;--------------------------------------------------------------    seg_d  ----
  749.   
  750.                 seg_d        segment    para public use16
  751.                         assume cs:seg_d , ds:seg_b
  752.   
  753.   
  754.                         org    8000h
  755.   
  756. F000:8000  58 58 58 58 38 38    begin_text    db    'XXXX88886666----0123AAAAMMMMIIII'
  757. F000:8006  38 38 36 36 36 36
  758. F000:800C  2D 2D 2D 2D 30 31
  759. F000:8012  32 33 41 41 41 41
  760. F000:8018  4D 4D 4D 4D 49 49
  761. F000:801E  49 49
  762. F000:8020  20 44 61 74 65 3A            db    ' Date:-06/13/90 '
  763. F000:8026  2D 30 36 2F 31 33
  764. F000:802C  2F 39 30 20
  765. F000:8030  28 43 29 31 39 38    copyright    db    '(C)1985-1990, American Megatrend'
  766. F000:8036  35 2D 31 39 39 30
  767. F000:803C  2C 20 41 6D 65 72
  768.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 14
  769.  
  770. F000:8042  69 63 61 6E 20 4D
  771. F000:8048  65 67 61 74 72 65
  772. F000:804E  6E 64
  773. F000:8050  73 20 49 6E 63 2E            db    's Inc. All Rights '
  774. F000:8056  20 41 6C 6C 20 52
  775. F000:805C  69 67 68 74 73 20
  776. F000:8062  52 65 73 65 72 76            db    'Reserved. '
  777. F000:8068  65 64 2E 20
  778.   
  779.   
  780.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ System Reset ▒▒▒▒▒
  781.                 ;
  782.                 ;   SYSTEM RESET
  783.                 ;
  784.                 ;      Reset the computer system.  General operation includes a    test of
  785.                 ;      of the CPU, ROM checksum, and initialization of hardware    including:
  786.                 ;
  787.                 ;         Memory system
  788.                 ;         Timer/Counter    (which is also used for RAM refresh)
  789.                 ;         Interrupt Controller(s)
  790.                 ;         DMA Controller(s)
  791.                 ;         Keyboard Controller
  792.                 ;         Video    Controller & Video RAM
  793.                 ;         Floppy Controller
  794.                 ;         Hard Disk Controller (if present)
  795.                 ;
  796.                 ;      Portions    of the hardware may also have specific tests made to
  797.                 ;      insure reliable operation.  Test failures may display error code
  798.                 ;      on the screen if    the video subsystem is operational, or generate
  799.                 ;      beeps or    LED blinks to signify the error.
  800.                 ;
  801.                 ;      Note: A soft reset uses the warm_boot_flag to skip the memory
  802.                 ;            tests. (i.e. from pressing Ctrl-Alt-Del).
  803.                 ;
  804.                 ;      The system checks for installed ROMs by searching memory    from
  805.                 ;      C000h to    the beginning of the BIOS, in 2K chunks.  ROM memory is
  806.                 ;      identified if it    starts with the word AA55h.  It is followed a one
  807.                 ;      byte field length of the ROM (divided by 512).  If ROM is found,
  808.                 ;      the BIOS    will call the ROM at an offset of 3 from the beginning.
  809.                 ;      This feature was    not supported in the earliest PC machines.
  810.                 ;
  811.                 ;      The last    task turns control over to the bootstrap loader    (assuming
  812.                 ;      the floppy controller is operational)
  813.   
  814. F000:806C            system_reset    proc    near            ;  xref F000:E05B
  815. F000:806C  CC                    int    3            ; Debug breakpoint
  816. F000:806D  FC                    cld                ; Clear direction
  817. F000:806E  E4 64                in    al,64h            ; port 64h, keyboard status
  818. F000:8070  A8 04                test    al,4
  819. F000:8072  75 07                jnz    short loc_2        ; Jump if not zero
  820. F000:8074  B0 8D                mov    al,8Dh
  821. F000:8076  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  822. F000:8078  E9 00BB                jmp    loc_15            ; (8136)
  823. F000:807B            loc_2:                        ;  xref F000:8072
  824. F000:807B  B0 8F                mov    al,8Fh
  825. F000:807D  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  826.                                         ;  al = 8Fh, NMI off/pwr status
  827.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 15
  828.  
  829. F000:807F  EB 00                jmp    short loc_3        ; (8081)
  830. F000:8081            loc_3:                        ;  xref F000:807F
  831. F000:8081  EB 00                jmp    short loc_4        ; (8083)
  832. F000:8083            loc_4:                        ;  xref F000:8081
  833. F000:8083  E4 71                in    al,71h            ; port 71h, RTC clock/RAM data
  834. F000:8085  B4 00                mov    ah,0
  835. F000:8087  8B F0                mov    si,ax
  836. F000:8089  B0 8F                mov    al,8Fh
  837. F000:808B  EB 00                jmp    short loc_5        ; (808D)
  838. F000:808D            loc_5:                        ;  xref F000:808B
  839. F000:808D  EB 00                jmp    short loc_6        ; (808F)
  840. F000:808F            loc_6:                        ;  xref F000:808D
  841. F000:808F  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  842.                                         ;  al = 8Fh, NMI off/pwr status
  843. F000:8091  B0 00                mov    al,0
  844. F000:8093  EB 00                jmp    short loc_7        ; (8095)
  845. F000:8095            loc_7:                        ;  xref F000:8093
  846. F000:8095  EB 00                jmp    short loc_8        ; (8097)
  847. F000:8097            loc_8:                        ;  xref F000:8095
  848. F000:8097  E6 71                out    71h,al            ; port 71h, RTC clock/RAM data
  849. F000:8099  8C C8                mov    ax,cs
  850. F000:809B  8E D0                mov    ss,ax
  851. F000:809D  8B C6                mov    ax,si
  852. F000:809F  3C 04                cmp    al,4
  853. F000:80A1  74 0B                je    short loc_9        ; Jump if equal
  854. F000:80A3  3C 05                cmp    al,5
  855. F000:80A5  74 07                je    short loc_9        ; Jump if equal
  856. F000:80A7  3C 0A                cmp    al,0Ah
  857. F000:80A9  76 0F                jbe    short loc_10        ; Jump if below or =
  858. F000:80AB  E9 00DB                jmp    loc_18            ; (8189)
  859. F000:80AE            loc_9:                        ;  xref F000:80A1, 80A5
  860. F000:80AE  BB 0870                mov    bx,870h
  861. F000:80B1  90                    nop                ;
  862. F000:80B2  BC 80B8                mov    sp,80B8h
  863. F000:80B5  E9 6E24                jmp    loc_1331        ; (EEDC)
  864. F000:80B8  BA 80                db    0BAh, 80h
  865. F000:80BA            loc_10:                        ;  xref F000:80A9
  866. F000:80BA  8B C6                mov    ax,si
  867. F000:80BC  3C 05                cmp    al,5
  868. F000:80BE  74 08                je    short loc_11        ; Jump if equal
  869. F000:80C0  3C 09                cmp    al,9
  870. F000:80C2  74 04                je    short loc_11        ; Jump if equal
  871. F000:80C4  3C 0A                cmp    al,0Ah
  872. F000:80C6  75 20                jne    short loc_12        ; Jump if not equal
  873. F000:80C8            loc_11:                        ;  xref F000:80BE, 80C2
  874. F000:80C8  0F 01 E0                smsw    ax            ; Store machine stat
  875. F000:80CB  F6 C4 FF                test    ah,0FFh
  876. F000:80CE  75 18                jnz    short loc_12        ; Jump if not zero
  877. F000:80D0  66| C1 C8 10                ror    eax,10h            ; Rotate
  878. F000:80D4  8B C8                mov    cx,ax
  879. F000:80D6  0F 20 C0                mov    eax,cr0            ; Mov reg-control reg
  880. F000:80D9  66| 25 9FFFFFFF            and    eax,9FFFFFFFh
  881. F000:80DF  0F 22 C0                mov    cr0,eax            ; Mov reg-control reg
  882. F000:80E2  8B C1                mov    ax,cx
  883. F000:80E4  66| C1 C8 10                ror    eax,10h            ; Rotate
  884. F000:80E8            loc_12:                        ;  xref F000:80C6, 80CE
  885. F000:80E8  B8 0040                mov    ax,seg_b
  886.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 16
  887.  
  888. F000:80EB  8E D8                mov    ds,ax
  889. F000:80ED  B0 00                mov    al,0
  890. F000:80EF  8E C0                mov    es,ax
  891. F000:80F1  B0 30                mov    al,30h            ; '0'
  892. F000:80F3  8E D0                mov    ss,ax
  893. F000:80F5  BC 0100                mov    sp,100h
  894. F000:80F8  D1 E6                shl    si,1            ; Shift w/zeros fill
  895. F000:80FA  2E: FF A4 8100            jmp    word ptr cs:data_63[si]    ;*(F000:8100=8189h)  9 entries
  896. F000:80FF  90                    db    90h
  897. F000:8100  8189            data_63        dw    offset loc_18        ; Data table (indexed access)
  898.                                         ;  xref F000:80FB
  899. F000:8102  AA50            data_64        dw    offset loc_646        ;  xref F000:80FB
  900. F000:8104  8F86            data_65        dw    offset loc_283        ;  xref F000:80FB
  901. F000:8106  AB66            data_66        dw    offset loc_653        ;  xref F000:80FB
  902. F000:8108  8F8C            data_67        dw    offset loc_284        ;  xref F000:80FB
  903. F000:810A  8F9D            data_68        dw    offset loc_287        ;  xref F000:80FB
  904. F000:810C  AD07            data_69        dw    offset loc_683        ;  xref F000:80FB
  905. F000:810E  8189            data_70        dw    offset loc_18        ;  xref F000:80FB
  906. F000:8110  8189            data_71        dw    offset loc_18        ;  xref F000:80FB
  907. F000:8112  96 CB A3 8F                db    96h, 0CBh, 0A3h, 8Fh
  908. F000:8116            loc_13:                        ;  xref F000:8141, 814A
  909. F000:8116  BD 0005                mov    bp,5
  910. F000:8119  E9 0C3C                jmp    loc_218            ; (8D58)
  911. F000:811C            loc_14:                        ;  xref F000:8152
  912. F000:811C  8B D8                mov    bx,ax
  913. F000:811E  8B CB                mov    cx,bx
  914. F000:8120  8B D1                mov    dx,cx
  915. F000:8122  8B F2                mov    si,dx
  916. F000:8124  8B FE                mov    di,si
  917. F000:8126  8B EF                mov    bp,di
  918. F000:8128  8E C5                mov    es,bp
  919. F000:812A  8C C0                mov    ax,es
  920. F000:812C  8E D8                mov    ds,ax
  921. F000:812E  8C D8                mov    ax,ds
  922. F000:8130  8E D0                mov    ss,ax
  923. F000:8132  8C D0                mov    ax,ss
  924. F000:8134  FF E4                jmp    sp            ;*Register jump
  925. F000:8136            loc_15:                        ;  xref F000:8078
  926. F000:8136  B0 01                mov    al,1
  927. F000:8138  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  928. F000:813A  BC 5555                mov    sp,5555h
  929. F000:813D  81 FC 5555                cmp    sp,5555h
  930. F000:8141  75 D3                jne    loc_13            ; Jump if not equal
  931. F000:8143  BC AAAA                mov    sp,0AAAAh
  932. F000:8146  81 FC AAAA                cmp    sp,0AAAAh
  933. F000:814A  75 CA                jne    loc_13            ; Jump if not equal
  934. F000:814C  B8 5555                mov    ax,5555h
  935. F000:814F  BC 8154                mov    sp,8154h
  936. F000:8152  EB C8                jmp    short loc_14        ; (811C)
  937. F000:8154  35 55 55 75 BD B8            db    35h, 55h, 55h, 75h, 0BDh, 0B8h
  938. F000:815A  AA AA BC 61 81 EB            db    0AAh, 0AAh, 0BCh, 61h, 81h, 0EBh
  939. F000:8160  BB 35 AA AA 75 B0            db    0BBh, 35h, 0AAh, 0AAh, 75h, 0B0h
  940. F000:8166  B4 08                db    0B4h, 8
  941. F000:8168            loc_16:                        ;  xref F000:8169, 816D
  942. F000:8168  49                    dec    cx
  943. F000:8169  75 FD                jnz    loc_16            ; Jump if not zero
  944. F000:816B  FE CC                dec    ah
  945.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 17
  946.  
  947. F000:816D  75 F9                jnz    loc_16            ; Jump if not zero
  948. F000:816F  B0 02                mov    al,2
  949. F000:8171  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  950. F000:8173  33 DB                xor    bx,bx            ; Zero register
  951. F000:8175  B9 4000                mov    cx,4000h
  952. F000:8178  BE 8000                mov    si,8000h
  953.   
  954. F000:817B            locloop_17:                    ;  xref F000:817F
  955. F000:817B  2E: AD                lods word ptr cs:[si]        ; String [si] to ax
  956. F000:817D  03 D8                add    bx,ax
  957. F000:817F  E2 FA                loop    locloop_17        ; Loop if cx > 0
  958.   
  959. F000:8181  74 06                jz    short loc_18        ; Jump if zero
  960. F000:8183  BD 0009                mov    bp,9
  961. F000:8186  E9 0BCF                jmp    loc_218            ; (8D58)
  962.   
  963.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  964.   
  965. F000:8189            loc_18:                        ;  xref F000:80AB, 80FB, 8100, 810E
  966.                                         ;            8110, 8181
  967. F000:8189  B0 03                mov    al,3
  968. F000:818B  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  969. F000:818D  33 ED                xor    bp,bp            ; Zero register
  970. F000:818F  8E DD                mov    ds,bp
  971. F000:8191  8E C5                mov    es,bp
  972. F000:8193  8C C8                mov    ax,cs
  973. F000:8195  8E D0                mov    ss,ax
  974. F000:8197  E4 64                in    al,64h            ; port 64h, keyboard status
  975. F000:8199  A8 04                test    al,4
  976. F000:819B  74 02                jz    short loc_19        ; Jump if zero
  977. F000:819D  EB 17                jmp    short loc_23        ; (81B6)
  978. F000:819F            loc_19:                        ;  xref F000:819B
  979. F000:819F  EB 20                jmp    short loc_24        ; (81C1)
  980. F000:81A1  B4 06 33 C9                db    0B4h, 6, 33h, 0C9h
  981.   
  982. F000:81A5            locloop_20:                    ;  xref F000:81AB, 81B1
  983. F000:81A5  EB 00                jmp    short loc_21        ; (81A7)
  984. F000:81A7            loc_21:                        ;  xref F000:81A5
  985. F000:81A7  E4 64                in    al,64h            ; port 64h, keyboard status
  986. F000:81A9  A8 01                test    al,1
  987. F000:81AB  E1 F8                loopz    locloop_20        ; Loop if zf=1, cx>0
  988.   
  989. F000:81AD  75 04                jnz    short loc_22        ; Jump if not zero
  990. F000:81AF  FE CC                dec    ah
  991. F000:81B1  75 F2                jnz    locloop_20        ; Jump if not zero
  992. F000:81B3            loc_22:                        ;  xref F000:81AD
  993. F000:81B3  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  994. F000:81B5  C3                    retn
  995.                 system_reset    endp
  996.   
  997. F000:81B6            loc_23:                        ;  xref F000:819D
  998.                         assume    ds:seg_a
  999. F000:81B6  81 3E 0472 1234            cmp    warm_boot_flag_,1234h    ; (0000:0472=1200h)
  1000. F000:81BC  75 03                jne    short loc_24        ; Jump if not equal
  1001. F000:81BE  BD 8000                mov    bp,8000h
  1002. F000:81C1            loc_24:                        ;  xref F000:819F, 81BC
  1003. F000:81C1  B7 02                mov    bh,2
  1004.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 18
  1005.  
  1006. F000:81C3  33 C9                xor    cx,cx            ; Zero register
  1007.   
  1008. F000:81C5            locloop_25:                    ;  xref F000:81D6
  1009. F000:81C5  EB 00                jmp    short loc_26        ; (81C7)
  1010. F000:81C7            loc_26:                        ;  xref F000:81C5
  1011. F000:81C7  E4 64                in    al,64h            ; port 64h, keyboard status
  1012. F000:81C9  8A E0                mov    ah,al
  1013. F000:81CB  A8 01                test    al,1
  1014. F000:81CD  74 04                jz    short loc_28        ; Jump if zero
  1015. F000:81CF  EB 00                jmp    short loc_27        ; (81D1)
  1016. F000:81D1            loc_27:                        ;  xref F000:81CF
  1017. F000:81D1  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  1018. F000:81D3            loc_28:                        ;  xref F000:81CD
  1019. F000:81D3  F6 C4 02                test    ah,2
  1020. F000:81D6  E0 ED                loopnz    locloop_25        ; Loop if zf=0, cx>0
  1021.   
  1022. F000:81D8  B0 AA                mov    al,0AAh
  1023. F000:81DA  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  1024.                                         ;  al = 0AAh, self test
  1025. F000:81DC  BC 81E2                mov    sp,81E2h
  1026. F000:81DF  E9 0D00                jmp    loc_271            ; (8EE2)
  1027. F000:81E2  E4 81 BC E9 81 EB            db    0E4h, 81h, 0BCh, 0E9h, 81h, 0EBh
  1028. F000:81E8  B8 EB 81 B0 60 E6            db    0B8h, 0EBh, 81h, 0B0h, 60h, 0E6h
  1029. F000:81EE  64 90 BC F6 81 E9            db    64h, 90h, 0BCh, 0F6h, 81h, 0E9h
  1030. F000:81F4  EC 0C F8 81 2E F6            db    0ECh, 0Ch, 0F8h, 81h, 2Eh, 0F6h
  1031. F000:81FA  06 C0 E2 40 B0 55            db    6, 0C0h, 0E2h, 40h, 0B0h, 55h
  1032. F000:8200  74 02 B0                db    74h, 2, 0B0h
  1033. F000:8203  74                    db    74h
  1034. F000:8204            loc_29:
  1035. F000:8204  E6 60                out    60h,al            ; port 60h, keybd data write
  1036. F000:8206  BC 820C                mov    sp,820Ch
  1037. F000:8209  E9 0CD6                jmp    loc_271            ; (8EE2)
  1038. F000:820C  0E 82 B0 AE E6 64            db    0Eh, 82h, 0B0h, 0AEh, 0E6h, 64h
  1039. F000:8212  BC 18 82 E9 CA 0C            db    0BCh, 18h, 82h, 0E9h, 0CAh, 0Ch
  1040. F000:8218  1A 82 B7 00 B9 00            db    1Ah, 82h, 0B7h, 0, 0B9h, 0
  1041. F000:821E  40                    db    40h
  1042.   
  1043. F000:821F            locloop_30:                    ;  xref F000:822D
  1044. F000:821F  EB 00                jmp    short loc_31        ; (8221)
  1045. F000:8221            loc_31:                        ;  xref F000:821F
  1046. F000:8221  E4 64                in    al,64h            ; port 64h, keyboard status
  1047. F000:8223  24 01                and    al,1
  1048. F000:8225  74 04                jz    short loc_33        ; Jump if zero
  1049. F000:8227  EB 00                jmp    short loc_32        ; (8229)
  1050. F000:8229            loc_32:                        ;  xref F000:8227
  1051. F000:8229  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  1052. F000:822B            loc_33:                        ;  xref F000:8225
  1053. F000:822B  3C 52                cmp    al,52h            ; 'R'
  1054. F000:822D  E0 F0                loopnz    locloop_30        ; Loop if zf=0, cx>0
  1055.   
  1056. F000:822F  75 09                jnz    short loc_34        ; Jump if not zero
  1057. F000:8231  0B ED                or    bp,bp            ; Zero ?
  1058. F000:8233  78 05                js    short loc_34        ; Jump if sign=1
  1059. F000:8235  B7 08                mov    bh,8
  1060. F000:8237  83 CD 02                or    bp,2
  1061. F000:823A            loc_34:                        ;  xref F000:822F, 8233
  1062. F000:823A  B0 AD                mov    al,0ADh
  1063.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 19
  1064.  
  1065. F000:823C  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  1066.                                         ;  al = 0ADh, disable keyboard
  1067. F000:823E  BC 8244                mov    sp,8244h
  1068. F000:8241  E9 0C9E                jmp    loc_271            ; (8EE2)
  1069. F000:8244  46 82 B8 B8 B8 90            db    46h, 82h, 0B8h, 0B8h, 0B8h, 90h
  1070. F000:824A  BC 50 82 E9 39 6C            db    0BCh, 50h, 82h, 0E9h, 39h, 6Ch
  1071. F000:8250  52 82 24 F7 0A C7            db    52h, 82h, 24h, 0F7h, 0Ah, 0C7h
  1072. F000:8256  86 C4 BC 5E 82 E9            db    86h, 0C4h, 0BCh, 5Eh, 82h, 0E9h
  1073. F000:825C  34 6C 60 82 0B ED            db    34h, 6Ch, 60h, 82h, 0Bh, 0EDh
  1074. F000:8262  78 18 B8 B7 B7 90            db    78h, 18h, 0B8h, 0B7h, 0B7h, 90h
  1075. F000:8268  BC 6E 82 E9 1B 6C            db    0BCh, 6Eh, 82h, 0E9h, 1Bh, 6Ch
  1076. F000:826E  70 82 0C 0C 86 C4            db    70h, 82h, 0Ch, 0Ch, 86h, 0C4h
  1077. F000:8274  BC 7A 82 E9 18 6C            db    0BCh, 7Ah, 82h, 0E9h, 18h, 6Ch
  1078. F000:827A  7C 82 B0 04 E6 80            db    7Ch, 82h, 0B0h, 4, 0E6h, 80h
  1079. F000:8280  B8 8F 55 90 BC 8A            db    0B8h, 8Fh, 55h, 90h, 0BCh, 8Ah
  1080. F000:8286  82 E9 08 6C 8C 82            db    82h, 0E9h, 8, 6Ch, 8Ch, 82h
  1081. F000:828C  BC 92 82 E9 F7 6B            db    0BCh, 92h, 82h, 0E9h, 0F7h, 6Bh
  1082. F000:8292  94 82 32 C4 75 18            db    94h, 82h, 32h, 0C4h, 75h, 18h
  1083. F000:8298  B8 8F AA 90 BC A2            db    0B8h, 8Fh, 0AAh, 90h, 0BCh, 0A2h
  1084. F000:829E  82 E9 F0 6B A4 82            db    82h, 0E9h, 0F0h, 6Bh, 0A4h, 82h
  1085. F000:82A4  BC AA 82 E9 DF 6B            db    0BCh, 0AAh, 82h, 0E9h, 0DFh, 6Bh
  1086. F000:82AA  AC 82 32 C4 74 04            db    0ACh, 82h, 32h, 0C4h, 74h, 4
  1087. F000:82B0  81 CD 00 40 B0 8D            db    81h, 0CDh, 0, 40h, 0B0h, 8Dh
  1088. F000:82B6  BC BC 82 E9 CD 6B            db    0BCh, 0BCh, 82h, 0E9h, 0CDh, 6Bh
  1089. F000:82BC  BE 82 0A C0 B8 8E            db    0BEh, 82h, 0Ah, 0C0h, 0B8h, 8Eh
  1090. F000:82C2  8E 90 BC CA 82 E9            db    8Eh, 90h, 0BCh, 0CAh, 82h, 0E9h
  1091. F000:82C8  BF 6B CC 82 78 08            db    0BFh, 6Bh, 0CCh, 82h, 78h, 8
  1092. F000:82CE  83 CD 20 0C DC EB            db    83h, 0CDh, 20h, 0Ch, 0DCh, 0EBh
  1093. F000:82D4  50 90 0A C0 78 44            db    50h, 90h, 0Ah, 0C0h, 78h, 44h
  1094. F000:82DA  8B D8 33 C9 33 D2            db    8Bh, 0D8h, 33h, 0C9h, 33h, 0D2h
  1095. F000:82E0  B8 90 90 90 BC EA            db    0B8h, 90h, 90h, 90h, 0BCh, 0EAh
  1096. F000:82E6  82 E9 9F 6B EC 82            db    82h, 0E9h, 9Fh, 6Bh, 0ECh, 82h
  1097. F000:82EC  8A C8 03 D1 FE C4            db    8Ah, 0C8h, 3, 0D1h, 0FEh, 0C4h
  1098. F000:82F2  8A C4 3C AE 75 EB            db    8Ah, 0C4h, 3Ch, 0AEh, 75h, 0EBh
  1099. F000:82F8  FE C4 BC 00 83 E9            db    0FEh, 0C4h, 0BCh, 0, 83h, 0E9h
  1100. F000:82FE  89 6B 02 83 86 C4            db    89h, 6Bh, 2, 83h, 86h, 0C4h
  1101. F000:8304  BC 0A 83 E9 7F 6B            db    0BCh, 0Ah, 83h, 0E9h, 7Fh, 6Bh
  1102. F000:830A  0C 83 3B C2 8B C3            db    0Ch, 83h, 3Bh, 0C2h, 8Bh, 0C3h
  1103. F000:8310  75 04 0B D2 75 0D            db    75h, 4, 0Bh, 0D2h, 75h, 0Dh
  1104. F000:8316  0C 5C 81 CD 80 00            db    0Ch, 5Ch, 81h, 0CDh, 80h, 0
  1105. F000:831C  EB 07 83 CD 40 EB            db    0EBh, 7, 83h, 0CDh, 40h, 0EBh
  1106. F000:8322  02 24 8B                db    2, 24h, 8Bh
  1107. F000:8325            loc_35:
  1108. F000:8325  8B D8                mov    bx,ax
  1109. F000:8327  B8 8B8B                mov    ax,8B8Bh
  1110. F000:832A  BC 8330                mov    sp,8330h
  1111. F000:832D  E9 6B59                jmp    loc_1321        ; (EE89)
  1112. F000:8330  32 83 24 07 86 C4            db    32h, 83h, 24h, 7, 86h, 0C4h
  1113. F000:8336  BC 3C 83 E9 56 6B            db    0BCh, 3Ch, 83h, 0E9h, 56h, 6Bh
  1114. F000:833C  3E 83 B0 8C BC 46            db    3Eh, 83h, 0B0h, 8Ch, 0BCh, 46h
  1115. F000:8342  83 E9 43 6B 48 83            db    83h, 0E9h, 43h, 6Bh, 48h, 83h
  1116. F000:8348  B8 8A 8A 90 BC 52            db    0B8h, 8Ah, 8Ah, 90h, 0BCh, 52h
  1117. F000:834E  83 E9 37 6B 54 83            db    83h, 0E9h, 37h, 6Bh, 54h, 83h
  1118. F000:8354  24 0F 75 0C B0 26            db    24h, 0Fh, 75h, 0Ch, 0B0h, 26h
  1119. F000:835A  86 C4 BC 62 83 E9            db    86h, 0C4h, 0BCh, 62h, 83h, 0E9h
  1120. F000:8360  30 6B 64 83 B0 94            db    30h, 6Bh, 64h, 83h, 0B0h, 94h
  1121. F000:8366  BC 6C 83 E9 1D 6B            db    0BCh, 6Ch, 83h, 0E9h, 1Dh, 6Bh
  1122.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 20
  1123.  
  1124. F000:836C  6E 83 D0 E8 8B C3            db    6Eh, 83h, 0D0h, 0E8h, 8Bh, 0C3h
  1125. F000:8372  72 05 83 CD 40 0C            db    72h, 5, 83h, 0CDh, 40h, 0Ch
  1126. F000:8378  20 86 C4 90 BC 82            db    20h, 86h, 0C4h, 90h, 0BCh, 82h
  1127. F000:837E  83 E9 10 6B 84 83            db    83h, 0E9h, 10h, 6Bh, 84h, 83h
  1128. F000:8384  0F 01 E0 F6 C4 FF            db    0Fh, 1, 0E0h, 0F6h, 0C4h, 0FFh
  1129. F000:838A  75 0E 0F 20 C0 66            db    75h, 0Eh, 0Fh, 20h, 0C0h, 66h
  1130. F000:8390  0D 00 00 00 60 0F            db    0Dh, 0, 0, 0, 60h, 0Fh
  1131. F000:8396  22 C0 0F 08 33 C0            db    22h, 0C0h, 0Fh, 8, 33h, 0C0h
  1132. F000:839C  8E C0 8E D8 E9            db    8Eh, 0C0h, 8Eh, 0D8h, 0E9h
  1133. F000:83A1  26 70                db    26h, 70h
  1134. F000:83A3            loc_36:
  1135. F000:83A3  B0 04                mov    al,4
  1136. F000:83A5  E6 08                out    8,al            ; port 8, DMA-1 command reg
  1137. F000:83A7  EB 00                jmp    short loc_37        ; (83A9)
  1138. F000:83A9            loc_37:                        ;  xref F000:83A7
  1139. F000:83A9  EB 00                jmp    short loc_38        ; (83AB)
  1140. F000:83AB            loc_38:                        ;  xref F000:83A9
  1141. F000:83AB  E6 D0                out    0D0h,al            ; port 0D0h, DMA-2 command reg
  1142. F000:83AD  B0 00                mov    al,0
  1143. F000:83AF  EB 00                jmp    short loc_39        ; (83B1)
  1144. F000:83B1            loc_39:                        ;  xref F000:83AF
  1145. F000:83B1  EB 00                jmp    short loc_40        ; (83B3)
  1146. F000:83B3            loc_40:                        ;  xref F000:83B1
  1147. F000:83B3  E6 8F                out    8Fh,al            ; port 8Fh, DMA page reg ch 4
  1148. F000:83B5  BB 0870                mov    bx,870h
  1149. F000:83B8  BC 83BE                mov    sp,83BEh
  1150. F000:83BB  E9 6B22                jmp    loc_1332        ; (EEE0)
  1151. F000:83BE  C0 83 B0 05 E6 80            db    0C0h, 83h, 0B0h, 5, 0E6h, 80h
  1152. F000:83C4  33 C0 BA D8 03 EE            db    33h, 0C0h, 0BAh, 0D8h, 3, 0EEh
  1153. F000:83CA  EB 00 EB 00                db    0EBh, 0, 0EBh, 0
  1154. F000:83CE            loc_41:
  1155. F000:83CE  40                    inc    ax
  1156. F000:83CF  B2 B8                mov    dl,0B8h
  1157. F000:83D1  EE                    out    dx,al            ; port 0B8h
  1158. F000:83D2  EB 00                jmp    short loc_42        ; (83D4)
  1159. F000:83D4            loc_42:                        ;  xref F000:83D2
  1160. F000:83D4  EB 00                jmp    short loc_43        ; (83D6)
  1161. F000:83D6            loc_43:                        ;  xref F000:83D4
  1162. F000:83D6  B2 BA                mov    dl,0BAh
  1163. F000:83D8  EC                    in    al,dx            ; port 0BAh
  1164. F000:83D9  EB 00                jmp    short loc_44        ; (83DB)
  1165. F000:83DB            loc_44:                        ;  xref F000:83D9
  1166. F000:83DB  EB 00                jmp    short loc_45        ; (83DD)
  1167. F000:83DD            loc_45:                        ;  xref F000:83DB
  1168. F000:83DD  B2 DA                mov    dl,0DAh
  1169. F000:83DF  EC                    in    al,dx            ; port 0DAh, DMA-2 temp reg
  1170. F000:83E0  EB 00                jmp    short loc_46        ; (83E2)
  1171. F000:83E2            loc_46:                        ;  xref F000:83E0
  1172. F000:83E2  EB 00                jmp    short loc_47        ; (83E4)
  1173. F000:83E4            loc_47:                        ;  xref F000:83E2
  1174. F000:83E4  B2 C0                mov    dl,0C0h
  1175. F000:83E6  B0 00                mov    al,0
  1176. F000:83E8  EE                    out    dx,al            ; port 0C0h, DMA-2 bas&add ch 0
  1177. F000:83E9  B0 06                mov    al,6
  1178. F000:83EB  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1179. F000:83ED  B0 FC                mov    al,0FCh
  1180. F000:83EF  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  1181.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 21
  1182.  
  1183. F000:83F1  EB 00                jmp    short loc_48        ; (83F3)
  1184. F000:83F3            loc_48:                        ;  xref F000:83F1
  1185. F000:83F3  EB 00                jmp    short loc_49        ; (83F5)
  1186. F000:83F5            loc_49:                        ;  xref F000:83F3
  1187. F000:83F5  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  1188. F000:83F7  A8 01                test    al,1
  1189. F000:83F9  EB 03                jmp    short loc_50        ; (83FE)
  1190. F000:83FB  83 CD 01                db    83h, 0CDh, 1
  1191. F000:83FE            loc_50:                        ;  xref F000:83F9
  1192. F000:83FE  B0 B4                mov    al,0B4h
  1193. F000:8400  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1194. F000:8402  B0 55                mov    al,55h            ; 'U'
  1195. F000:8404  EB 00                jmp    short loc_51        ; (8406)
  1196. F000:8406            loc_51:                        ;  xref F000:8404
  1197. F000:8406  EB 00                jmp    short loc_52        ; (8408)
  1198. F000:8408            loc_52:                        ;  xref F000:8406
  1199. F000:8408  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  1200. F000:840A  B0 AA                mov    al,0AAh
  1201. F000:840C  EB 00                jmp    short loc_53        ; (840E)
  1202. F000:840E            loc_53:                        ;  xref F000:840C
  1203. F000:840E  EB 00                jmp    short loc_54        ; (8410)
  1204. F000:8410            loc_54:                        ;  xref F000:840E
  1205. F000:8410  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  1206. F000:8412  B0 80                mov    al,80h
  1207. F000:8414  EB 00                jmp    short loc_55        ; (8416)
  1208. F000:8416            loc_55:                        ;  xref F000:8414
  1209. F000:8416  EB 00                jmp    short loc_56        ; (8418)
  1210. F000:8418            loc_56:                        ;  xref F000:8416
  1211. F000:8418  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1212.                                         ;  al = 80h, timer 3 count mode
  1213. F000:841A  EB 00                jmp    short loc_57        ; (841C)
  1214. F000:841C            loc_57:                        ;  xref F000:841A
  1215. F000:841C  EB 00                jmp    short loc_58        ; (841E)
  1216. F000:841E            loc_58:                        ;  xref F000:841C
  1217. F000:841E  E4 42                in    al,42h            ; port 42h, 8253 timer 2 spkr
  1218. F000:8420  8A E0                mov    ah,al
  1219. F000:8422  EB 00                jmp    short loc_59        ; (8424)
  1220. F000:8424            loc_59:                        ;  xref F000:8422
  1221. F000:8424  EB 00                jmp    short loc_60        ; (8426)
  1222. F000:8426            loc_60:                        ;  xref F000:8424
  1223. F000:8426  E4 42                in    al,42h            ; port 42h, 8253 timer 2 spkr
  1224. F000:8428  3D 55AA                cmp    ax,55AAh
  1225. F000:842B  EB 03                jmp    short loc_61        ; (8430)
  1226. F000:842D  83 CD 01                db    83h, 0CDh, 1
  1227. F000:8430            loc_61:                        ;  xref F000:842B
  1228. F000:8430  B0 07                mov    al,7
  1229. F000:8432  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1230. F000:8434  B0 FD                mov    al,0FDh
  1231. F000:8436  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  1232. F000:8438  BA 0042                mov    dx,42h
  1233. F000:843B  BC 8440                mov    sp,8440h
  1234. F000:843E  EB 25                jmp    short loc_64        ; (8465)
  1235. F000:8440  EB 03                jmp    short loc_62        ; (8445)
  1236. F000:8442  83 CD 01                db    83h, 0CDh, 1
  1237. F000:8445            loc_62:                        ;  xref F000:8440
  1238. F000:8445  B0 08                mov    al,8
  1239. F000:8447  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1240.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 22
  1241.  
  1242. F000:8449  B2 41                mov    dl,41h            ; 'A'
  1243. F000:844B  BC 8450                mov    sp,8450h
  1244. F000:844E  EB 15                jmp    short loc_64        ; (8465)
  1245. F000:8450  EB 00                jmp    short loc_63        ; (8452)
  1246. F000:8452            loc_63:                        ;  xref F000:8450
  1247. F000:8452  B0 09                mov    al,9
  1248. F000:8454  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1249. F000:8456  B2 40                mov    dl,40h            ; '@'
  1250. F000:8458  BC 845D                mov    sp,845Dh
  1251. F000:845B  EB 08                jmp    short loc_64        ; (8465)
  1252. F000:845D  EB 5F                jmp    short loc_78        ; (84BE)
  1253. F000:845F  BD 04 00 E9 F3 08            db    0BDh, 4, 0, 0E9h, 0F3h, 8
  1254. F000:8465            loc_64:                        ;  xref F000:843E, 844E, 845B
  1255. F000:8465  8A C2                mov    al,dl
  1256. F000:8467  24 03                and    al,3
  1257. F000:8469  C0 C8 02                ror    al,2            ; Rotate
  1258. F000:846C  8A D8                mov    bl,al
  1259. F000:846E  0C 14                or    al,14h
  1260. F000:8470  8A F8                mov    bh,al
  1261. F000:8472  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1262. F000:8474  B0 FF                mov    al,0FFh
  1263. F000:8476  8A E0                mov    ah,al
  1264. F000:8478  B9 0020                mov    cx,20h
  1265. F000:847B  EB 00                jmp    short loc_65        ; (847D)
  1266. F000:847D            loc_65:                        ;  xref F000:847B
  1267. F000:847D  EB 00                jmp    short loc_66        ; (847F)
  1268. F000:847F            loc_66:                        ;  xref F000:847D
  1269. F000:847F  EE                    out    dx,al            ; port 40h, 8253 timer 0 clock
  1270.   
  1271. F000:8480            locloop_67:                    ;  xref F000:8480
  1272. F000:8480  E2 FE                loop    locloop_67        ; Loop if cx > 0
  1273.   
  1274. F000:8482  8A C3                mov    al,bl
  1275. F000:8484  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1276.                                         ;  al = 0, timer 0 count mode
  1277. F000:8486  EB 00                jmp    short loc_68        ; (8488)
  1278. F000:8488            loc_68:                        ;  xref F000:8486
  1279. F000:8488  EB 00                jmp    short loc_69        ; (848A)
  1280. F000:848A            loc_69:                        ;  xref F000:8488
  1281. F000:848A  EC                    in    al,dx            ; port 40h, 8253 timer 0 clock
  1282. F000:848B  2A E0                sub    ah,al
  1283. F000:848D  74 2D                jz    short loc_77        ; Jump if zero
  1284. F000:848F  8A C7                mov    al,bh
  1285. F000:8491  EB 00                jmp    short loc_70        ; (8493)
  1286. F000:8493            loc_70:                        ;  xref F000:8491
  1287. F000:8493  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1288. F000:8495  B0 CC                mov    al,0CCh
  1289. F000:8497  8A F8                mov    bh,al
  1290. F000:8499  B1 20                mov    cl,20h            ; ' '
  1291. F000:849B  EB 00                jmp    short loc_71        ; (849D)
  1292. F000:849D            loc_71:                        ;  xref F000:849B
  1293. F000:849D  EB 00                jmp    short loc_72        ; (849F)
  1294. F000:849F            loc_72:                        ;  xref F000:849D
  1295. F000:849F  EE                    out    dx,al            ; port 40h, 8253 timer 0 clock
  1296.   
  1297. F000:84A0            locloop_73:                    ;  xref F000:84A0
  1298. F000:84A0  E2 FE                loop    locloop_73        ; Loop if cx > 0
  1299.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 23
  1300.  
  1301.   
  1302. F000:84A2  8A C3                mov    al,bl
  1303. F000:84A4  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1304.                                         ;  al = 0, timer 0 count mode
  1305. F000:84A6  EB 00                jmp    short loc_74        ; (84A8)
  1306. F000:84A8            loc_74:                        ;  xref F000:84A6
  1307. F000:84A8  EB 00                jmp    short loc_75        ; (84AA)
  1308. F000:84AA            loc_75:                        ;  xref F000:84A8
  1309. F000:84AA  EC                    in    al,dx            ; port 40h, 8253 timer 0 clock
  1310. F000:84AB  2A F8                sub    bh,al
  1311. F000:84AD  74 0D                jz    short loc_77        ; Jump if zero
  1312. F000:84AF  2A E7                sub    ah,bh
  1313. F000:84B1  73 02                jnc    short loc_76        ; Jump if carry=0
  1314. F000:84B3  F6 DC                neg    ah
  1315. F000:84B5            loc_76:                        ;  xref F000:84B1
  1316. F000:84B5  80 FC 06                cmp    ah,6
  1317. F000:84B8  72 02                jb    short loc_77        ; Jump if below
  1318. F000:84BA  32 C0                xor    al,al            ; Zero register
  1319. F000:84BC            loc_77:                        ;  xref F000:848D, 84AD, 84B8
  1320. F000:84BC  FF E4                jmp    sp            ;*Register jump
  1321. F000:84BE            loc_78:                        ;  xref F000:845D
  1322. F000:84BE  B0 0A                mov    al,0Ah
  1323. F000:84C0  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1324. F000:84C2  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  1325. F000:84C4  24 FC                and    al,0FCh
  1326. F000:84C6  EB 00                jmp    short loc_79        ; (84C8)
  1327. F000:84C8            loc_79:                        ;  xref F000:84C6
  1328. F000:84C8  EB 00                jmp    short loc_80        ; (84CA)
  1329. F000:84CA            loc_80:                        ;  xref F000:84C8
  1330. F000:84CA  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  1331. F000:84CC  B0 54                mov    al,54h            ; 'T'
  1332. F000:84CE  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1333. F000:84D0  33 FF                xor    di,di            ; Zero register
  1334. F000:84D2  B9 8000                mov    cx,8000h
  1335. F000:84D5  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  1336. F000:84D7  B0 12                mov    al,12h
  1337. F000:84D9  E6 41                out    41h,al            ; port 41h, 8253 timer 1 refsh
  1338. F000:84DB  B9 8000                mov    cx,8000h
  1339. F000:84DE  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  1340. F000:84E0  33 F6                xor    si,si            ; Zero register
  1341. F000:84E2  B9 8000                mov    cx,8000h
  1342. F000:84E5  F3/ AD                rep    lodsw            ; Rep when cx >0 String [si] to ax
  1343. F000:84E7  B0 0B                mov    al,0Bh
  1344. F000:84E9  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1345. F000:84EB  B0 36                mov    al,36h            ; '6'
  1346. F000:84ED  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  1347. F000:84EF  B0 00                mov    al,0
  1348. F000:84F1  EB 00                jmp    short loc_81        ; (84F3)
  1349. F000:84F3            loc_81:                        ;  xref F000:84F1
  1350. F000:84F3  EB 00                jmp    short loc_82        ; (84F5)
  1351. F000:84F5            loc_82:                        ;  xref F000:84F3
  1352. F000:84F5  E6 40                out    40h,al            ; port 40h, 8253 timer 0 clock
  1353. F000:84F7  EB 00                jmp    short loc_83        ; (84F9)
  1354. F000:84F9            loc_83:                        ;  xref F000:84F7
  1355. F000:84F9  EB 00                jmp    short loc_84        ; (84FB)
  1356. F000:84FB            loc_84:                        ;  xref F000:84F9
  1357. F000:84FB  E6 40                out    40h,al            ; port 40h, 8253 timer 0 clock
  1358.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 24
  1359.  
  1360. F000:84FD  B0 0C                mov    al,0Ch
  1361. F000:84FF  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  1362. F000:8501  33 DB                xor    bx,bx            ; Zero register
  1363. F000:8503  B4 10                mov    ah,10h
  1364. F000:8505  BA 0061                mov    dx,61h
  1365. F000:8508  BC 850E                mov    sp,850Eh
  1366. F000:850B  E9 0920                jmp    loc_249            ; (8E2E)
  1367. F000:850E  10 85 E9 53 0B 00            db    10h, 85h, 0E9h, 53h, 0Bh, 0
  1368. F000:8514  858F            data_72        dw    offset sub_2        ; Data table (indexed access) (858F)
  1369.                                         ;  xref F000:857B
  1370. F000:8516  866B            data_73        dw    offset sub_3        ; (866B)
  1371.                                         ;  xref F000:857B
  1372. F000:8518  8674            data_74        dw    offset sub_4        ; (8674)
  1373.                                         ;  xref F000:857B
  1374. F000:851A  86C7            data_75        dw    offset sub_7        ; (86C7)
  1375.                                         ;  xref F000:857B
  1376. F000:851C  86DF            data_76        dw    offset sub_8        ; (86DF)
  1377.                                         ;  xref F000:857B
  1378. F000:851E  8787            data_77        dw    offset sub_9        ; (8787)
  1379.                                         ;  xref F000:857B
  1380. F000:8520  87B6            data_78        dw    offset sub_10        ; (87B6)
  1381.                                         ;  xref F000:857B
  1382. F000:8522  87BA            data_79        dw    offset sub_11        ; (87BA)
  1383.                                         ;  xref F000:857B
  1384. F000:8524  8917            data_80        dw    offset sub_12        ; (8917)
  1385.                                         ;  xref F000:857B
  1386. F000:8526  8A03            data_81        dw    offset sub_13        ; (8A03)
  1387.                                         ;  xref F000:857B
  1388. F000:8528  8A79            data_82        dw    offset sub_14        ; (8A79)
  1389.                                         ;  xref F000:857B
  1390. F000:852A  8BA0            data_83        dw    offset sub_15        ; (8BA0)
  1391.                                         ;  xref F000:857B
  1392. F000:852C  8BC5            data_84        dw    offset sub_16        ; (8BC5)
  1393.                                         ;  xref F000:857B
  1394. F000:852E  8BE2            data_85        dw    offset sub_17        ; (8BE2)
  1395.                                         ;  xref F000:857B
  1396. F000:8530  8BED            data_86        dw    offset sub_18        ; (8BED)
  1397.                                         ;  xref F000:857B
  1398. F000:8532  8C36            data_87        dw    offset sub_19        ; (8C36)
  1399.                                         ;  xref F000:857B
  1400. F000:8534  8C49            data_88        dw    offset sub_20        ; (8C49)
  1401.                                         ;  xref F000:857B
  1402. F000:8536  8C49            data_89        dw    offset sub_20        ; (8C49)
  1403.                                         ;  xref F000:857B
  1404. F000:8538  8C49            data_90        dw    offset sub_20        ; (8C49)
  1405.                                         ;  xref F000:857B
  1406. F000:853A  8C4A            data_91        dw    offset sub_21        ; (8C4A)
  1407.                                         ;  xref F000:857B
  1408.   
  1409.   
  1410.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 10h ▒▒▒▒▒
  1411.                 ;
  1412.                 ;   VIDEO DISPLAY SERVICES
  1413.                 ;
  1414.                 ;      Called with:  ah    = primary function number
  1415.                 ;
  1416.                 ;      Returns:    (unless    otherwise indicated)
  1417.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 25
  1418.  
  1419.                 ;             ax    - altered (some systems may not alter ax)
  1420.                 ;
  1421.                 ;      Functions:
  1422.                 ;        ah = 0        Set    video display mode in al.
  1423.                 ;        ah = 1        Set    cursor size
  1424.                 ;              Call with:  ch = top line, 0-32
  1425.                 ;                      cl = bottom line, 0-32
  1426.                 ;        ah = 2        Set    cursor location
  1427.                 ;              Call with:  bh = page number, 0 = 1st page
  1428.                 ;                      dh = row (0 for top row)
  1429.                 ;                      dl = column (0 for leftmost)
  1430.                 ;        ah = 3        Get    cursor location
  1431.                 ;              Call with:  bh = page number, 0 = 1st page
  1432.                 ;              Returns:    ch/cl = cursor size (top & bottom)
  1433.                 ;                      dh/dl = row and column of cursor
  1434.                 ;        ah = 4        Get    light pen location
  1435.                 ;              Returns:    ah = 0 not on/unsupported & bx,cx,dx changed
  1436.                 ;                           1 status valid
  1437.                 ;                      bx = pixel column
  1438.                 ;                      cx = horizontal line number
  1439.                 ;                      dh/dl = row and column
  1440.                 ;        ah = 5        Set    Page number al, 0 = 1st page
  1441.                 ;        ah = 6        Up scroll screen
  1442.                 ;              Call with:  al = # bottom lines to clear,    set 0 for all
  1443.                 ;                      bh = attribute to fill cleared lines
  1444.                 ;                      ch/cl = row/column of top left scroll corner
  1445.                 ;                      dh/dl = row/column of bottom right scroll corner
  1446.                 ;        ah = 7        Down scroll screen
  1447.                 ;              Call with:  al = # top lines to clear, set 0 for all
  1448.                 ;                      bh = attribute to fill cleared lines
  1449.                 ;                      ch/cl = row/column of top left scroll corner
  1450.                 ;                      dh/dl = row/column of bottom right scroll corner
  1451.                 ;        ah = 8        Get    character & attribute at cursor
  1452.                 ;              Call with:  bh = page number, 0 = 1st page
  1453.                 ;              Returns:    ah/al = attribute/character
  1454.                 ;        ah = 9        Write character & attribute at cursor (graphics modes)
  1455.                 ;              Call with:  al = character
  1456.                 ;                      bh = page number, 0 = 1st page
  1457.                 ;                      bl = attribute, bit 7 = 1 to xor with old color
  1458.                 ;                      cx = Number of same characters to write
  1459.                 ;        ah = 0Ah   Write character at cursor (graphics modes)
  1460.                 ;              Call with:  al = character
  1461.                 ;                      bh = page number, 0 = 1st page
  1462.                 ;                      cx = Number of same characters to write
  1463.                 ;        ah = 0Bh   Set    colors (typically in low res modes)
  1464.                 ;              Call with:  bh = 0, bl = color low res background, border
  1465.                 ;                      bh = 1, bl = 0/1 for low res color group 0/1
  1466.                 ;        ah = 0Ch   Write graphics dot
  1467.                 ;              Call with:  al = color, bit 7 = 1 to xor bit with old color
  1468.                 ;                      cx/dx = pixel row/pixel column
  1469.                 ;        ah = 0Dh   Read graphics dot
  1470.                 ;              Call with:  cx/dx = pixel row/pixel column
  1471.                 ;        ah = 0Eh   Write in ASCII mode (cr, lf, bell, and bs as operators)
  1472.                 ;              Call with:  al/bl = character/color
  1473.                 ;        ah = 0Fh   Get    video info
  1474.                 ;              Returns:    ah = columns active
  1475.                 ;                      al = active video mode
  1476.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 26
  1477.  
  1478.                 ;                      bh = active page, 0 = 1st page
  1479.                 ;        ah = 10h   Colors  (EGA/VGA)   Called with al = subfunction
  1480.                 ;              al = 1    bl = color register (0-15)  bh = color to set
  1481.                 ;              al = 2    es:dx = ptr to change all 16 colors & overscan #
  1482.                 ;              al = 3    bl = color high bit as: 0-intensity, 1-blink
  1483.                 ;            For    VGA equipped systems only
  1484.                 ;              al = 7    bl = color register to get in bh
  1485.                 ;              al = 8    bh = returned overscan value
  1486.                 ;              al = 9    es:dx = ptr where to put all 16    colors & overscan
  1487.                 ;              al = 10h  bx = color register to set; ch/cl/dl = grn/blu/red
  1488.                 ;              al = 12h  es:dx = ptr to change color registers
  1489.                 ;                    bx = 1st register to set, cx = # of registers
  1490.                 ;              al = 13h  bl = 0, set color page mode in bh
  1491.                 ;                    bl = 1, set page;  bh = page number
  1492.                 ;              al = 15h  bx = color reg to read; ch/cl/dl = grn/blu/red
  1493.                 ;              al = 17h  es:dx = ptr where to load color    regs
  1494.                 ;                    bx = 1st register to get, cx = # of registers
  1495.                 ;              al = 1Ah  get color page info; bl = mode;    bh = page #
  1496.                 ;        ah = 11h   Reset mode with new character set (leave memory as-is)
  1497.                 ;              al = 0    Character set load
  1498.                 ;                    es:bp = ptr to table of chars
  1499.                 ;                    bl/bh = which block/bytes per char
  1500.                 ;                    cx/dx = # of characters/where to start in block
  1501.                 ;              al = 1    bl = block to load the mono character set
  1502.                 ;              al = 2    bl = block to load the double wide character set
  1503.                 ;              al = 3    bl = block select related to attribute
  1504.                 ;              al = 4    bl = block to load the 8 by 16 set (VGA)
  1505.                 ;              al = 10h - 14h same as 0 - 4, must occur after setting mode
  1506.                 ;              al = 20h  es:bp = ptr to table of char, using int 1Fh ptr
  1507.                 ;              al = 21h  es:bp = ptr to table of char, using int 43h ptr
  1508.                 ;                    bl = 0-dl=# rows; 1-14 rows; 2-25 rows; 3-43 rows
  1509.                 ;                    cx = number of bytes per character in table
  1510.                 ;              al = 22h  use 8 by 14 char set, bl=rows (see al=21h)
  1511.                 ;              al = 23h  use double wide char set, bl=rows (see al=21h)
  1512.                 ;              al = 24h  use 8 by 16 char set, bl=rows (see al=21h)
  1513.                 ;            Get    table pointer and info
  1514.                 ;              al = 30h  es:bp = ptr returned; cx=bytes per char; dl=rows
  1515.                 ;                    bh = 0, get int 1Fh      bh = 4, get double wide
  1516.                 ;                    bh = 1, get int 43h      bh = 5, get mono 9 by 14
  1517.                 ;                    bh = 2, get 8 by 14      bh = 6, get 8 by 16 (VGA)
  1518.                 ;                    bh = 3, get double wide  bh = 7, get 9 by 16 (VGA)
  1519.                 ;        ah = 12h   Miscellaneous functions, bl = sub-function
  1520.                 ;              bl = 10h  Get info,  bh = 0-now color, 1-now mono
  1521.                 ;                    ch/cl = info bits/switches
  1522.                 ;              bl = 20h  Set print screen to work with EGA/VGA
  1523.                 ;            Functions for VGA only (bl = 30-34h return al = 12h)
  1524.                 ;              bl = 30h  Set # of scan lines, 0-200, 1-350, 2-400
  1525.                 ;                      activates after mode change
  1526.                 ;              bl = 31h  ax = 0/1  allow/prevent palette    load with new mode
  1527.                 ;              bl = 32h  al = 0/1  video off/on
  1528.                 ;              bl = 33h  al = 0/1  gray scale summing off/on
  1529.                 ;              bl = 34h  al = 0/1  scale cursor size to font off/on
  1530.                 ;              bl = 35h  switch between adapter and motherboard video
  1531.                 ;                    al = 0, adapter off, es:dx = save state area
  1532.                 ;                    al = 1, motherboard on
  1533.                 ;                    al = 2, active video off, es:dx    = save area
  1534.                 ;                    al = 3, inactive video on, es:dx = save area
  1535.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 27
  1536.  
  1537.                 ;              bl = 36h  al = 0/1  screen off/on
  1538.                 ;        ah = 13h   Write character string (cr, lf, bell, and bs as operators)
  1539.                 ;              Call with:  al = 0/1 write characters, cursor not/is moved
  1540.                 ;                            bl = attribute of all characters
  1541.                 ;                         = 2/3 write characters, cursor not/is moved
  1542.                 ;                            string alternates character & attribute
  1543.                 ;                      bh = page number, 0 = 1st page
  1544.                 ;                      cx = number of characters
  1545.                 ;                      dh/dl = row and column to start
  1546.                 ;                      es:bp = ptr to character string
  1547.                 ;        ah = 14h   LCD    display support, al = sub-function
  1548.                 ;               al = 0,    es:di = ptr to font table to load
  1549.                 ;                      bl/bh = which block/bytes per    char
  1550.                 ;                      cx/dx = # of characters/where    to start in block
  1551.                 ;               al = 1,    bl = block # of ROM font to load
  1552.                 ;               al = 2,    bl = how to support high intensity
  1553.                 ;        ah = 15h   LCD    info table ptr returned in es:di
  1554.                 ;               ax = 0      there is no alternate adapter
  1555.                 ;               ax = 5140h  LCD is the alternate
  1556.                 ;               ax = 5153h  CGA is alternate
  1557.                 ;               ax = 5151h  MDA is alternate
  1558.                 ;
  1559.                 ;                **** VGA SUPPORT ONLY ****
  1560.                 ;        ah = 1Ah   Get/Set types of displays which are operating
  1561.                 ;               al = 0, get displays, returns al = 1Ah
  1562.                 ;                   bl = in use display code
  1563.                 ;                   bh = alternate display code
  1564.                 ;               al = 1, set codes, returns al = 1Ah
  1565.                 ;                   bl = in use display code
  1566.                 ;                   bh = alternate display code
  1567.                 ;               codes:   0 = no display
  1568.                 ;                    1 = mono display
  1569.                 ;                    2 = CGA
  1570.                 ;                    4 = EGA, color
  1571.                 ;                    5 = EGA, mono
  1572.                 ;                    6 = PGA
  1573.                 ;                    7 = VGA, mono  (PS/2 MCA only)
  1574.                 ;                    8 = VGA, color (PS/2 MCA only)
  1575.                 ;                   Bh = VGA, mono  (PS/2 non MCA)
  1576.                 ;                   Ch = VGA, color (PS/2 non MCA)
  1577.                 ;                  FFh = display type not known
  1578.                 ;        ah = 1Bh   Get    video system information
  1579.                 ;               call with:  bx = 0
  1580.                 ;                       es:di = ptr to buffer where to put info
  1581.                 ;        ah = 1Ch   Video system save & restore, al = sub-function
  1582.                 ;               call with:  al = 0, get buffer size
  1583.                 ;                          = 1, save system, buffer at es:bx
  1584.                 ;                          = 2, restore system, buffer at es:bx
  1585.                 ;                       cx bit 0 = 1 for hardware registers
  1586.                 ;                          bit 1 = 1 for software states
  1587.                 ;                          bit 2 = 1 for colors & DAC registers
  1588.   
  1589. F000:853C            int_10h_video    proc    near            ;  xref F000:F065
  1590. F000:853C  FB                    sti                ; Enable interrupts
  1591. F000:853D  FC                    cld                ; Clear direction
  1592. F000:853E  80 FC 0E                cmp    ah,0Eh
  1593. F000:8541  74 40                je    short loc_88        ; Jump if equal
  1594.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 28
  1595.  
  1596. F000:8543  80 FC 02                cmp    ah,2
  1597. F000:8546  74 3E                je    short loc_89        ; Jump if equal
  1598. F000:8548  80 FC 03                cmp    ah,3
  1599. F000:854B  74 3C                je    short loc_90        ; Jump if equal
  1600. F000:854D  80 FC 05                cmp    ah,5
  1601. F000:8550  74 3A                je    short loc_91        ; Jump if equal
  1602. F000:8552  60                    pusha                ; Save all regs
  1603. F000:8553  1E                    push    ds
  1604. F000:8554  06                    push    es
  1605. F000:8555  80 FC 13                cmp    ah,13h
  1606. F000:8558  77 25                ja    short loc_87        ; Jump if above
  1607. F000:855A  50                    push    ax
  1608. F000:855B  8A C4                mov    al,ah
  1609. F000:855D  98                    cbw                ; Convrt byte to word
  1610. F000:855E  8B F8                mov    di,ax
  1611. F000:8560  B8 0040                mov    ax,seg_b
  1612. F000:8563  8E D8                mov    ds,ax
  1613. F000:8565  74 10                jz    short loc_86        ; Jump if zero
  1614.                         assume    ds:seg_b
  1615. F000:8567  A0 0010                mov    al,byte ptr equip_bits    ; (0040:0010=61h)
  1616. F000:856A  24 30                and    al,30h            ; '0'
  1617. F000:856C  3C 30                cmp    al,30h            ; '0'
  1618. F000:856E  B8 B000                mov    ax,0B000h
  1619. F000:8571  74 02                jz    short loc_85        ; Jump if zero
  1620. F000:8573  B4 B8                mov    ah,0B8h
  1621. F000:8575            loc_85:                        ;  xref F000:8571
  1622. F000:8575  8E C0                mov    es,ax
  1623. F000:8577            loc_86:                        ;  xref F000:8565
  1624. F000:8577  58                    pop    ax
  1625. F000:8578  D1 E7                shl    di,1            ; Shift w/zeros fill
  1626. F000:857A  2E: FF 95 8514            call    word ptr cs:data_72[di]    ;*(F000:8514=858Fh)  20 entries
  1627. F000:857F            loc_87:                        ;  xref F000:8558
  1628. F000:857F  07                    pop    es
  1629. F000:8580  1F                    pop    ds
  1630. F000:8581  61                    popa                ; Restore all regs
  1631. F000:8582  CF                    iret                ; Interrupt return
  1632.                 int_10h_video    endp
  1633.   
  1634. F000:8583            loc_88:                        ;  xref F000:8541
  1635. F000:8583  E9 0667                jmp    loc_197            ; (8BED)
  1636. F000:8586            loc_89:                        ;  xref F000:8546
  1637. F000:8586  E9 00EB                jmp    loc_103            ; (8674)
  1638. F000:8589            loc_90:                        ;  xref F000:854B
  1639. F000:8589  E9 013B                jmp    loc_109            ; (86C7)
  1640. F000:858C            loc_91:                        ;  xref F000:8550
  1641. F000:858C  E9 01F8                jmp    loc_127            ; (8787)
  1642.   
  1643.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1644.                 ;                   SUBROUTINE
  1645.                 ;
  1646.                 ;         Called from:     F000:8514, 857B
  1647.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1648.   
  1649.                 sub_2        proc    near
  1650. F000:858F  C6 06 0084 18            mov    video_rows,18h        ; (0040:0084=18h)
  1651. F000:8594  8C C2                mov    dx,es
  1652. F000:8596  80 FE B0                cmp    dh,0B0h
  1653.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 29
  1654.  
  1655. F000:8599  BA 03D4                mov    dx,3D4h
  1656. F000:859C  75 05                jnz    short loc_92        ; Jump if not zero
  1657. F000:859E  BA 03B4                mov    dx,3B4h
  1658. F000:85A1  B0 07                mov    al,7
  1659. F000:85A3            loc_92:                        ;  xref F000:859C
  1660. F000:85A3  89 16 0063                mov    @video_port,dx        ; (0040:0063=3D4h)
  1661. F000:85A7  A2 0049                mov    video_mode,al        ; (0040:0049=3)
  1662. F000:85AA  B4 3F                mov    ah,3Fh            ; '?'
  1663. F000:85AC  3C 06                cmp    al,6
  1664. F000:85AE  74 02                je    short loc_93        ; Jump if equal
  1665. F000:85B0  B4 30                mov    ah,30h            ; '0'
  1666. F000:85B2            loc_93:                        ;  xref F000:85AE
  1667. F000:85B2  88 26 0066                mov    video_color,ah        ; (0040:0066=30h)
  1668. F000:85B6  8A E0                mov    ah,al
  1669. F000:85B8  BB F0F4                mov    bx,0F0F4h
  1670. F000:85BB  2E: D7                xlat cs:[bx]            ; al=[al+[bx]] table
  1671. F000:85BD  A2 0065                mov    video_mode_reg,al    ; (0040:0065=29h)
  1672. F000:85C0  24 37                and    al,37h            ; '7'
  1673. F000:85C2  83 C2 04                add    dx,4
  1674. F000:85C5  EE                    out    dx,al            ; port 3B8h, MDA video control
  1675. F000:85C6  83 EA 04                sub    dx,4
  1676. F000:85C9  B0 28                mov    al,28h            ; '('
  1677. F000:85CB  F6 C4 02                test    ah,2
  1678. F000:85CE  74 02                jz    short loc_94        ; Jump if zero
  1679. F000:85D0  B0 50                mov    al,50h            ; 'P'
  1680. F000:85D2            loc_94:                        ;  xref F000:85CE
  1681. F000:85D2  8A DC                mov    bl,ah
  1682. F000:85D4  98                    cbw                ; Convrt byte to word
  1683. F000:85D5  A3 004A                mov    video_columns,ax    ; (0040:004A=50h)
  1684. F000:85D8  B8 0800                mov    ax,800h
  1685. F000:85DB  80 FB 01                cmp    bl,1
  1686. F000:85DE  76 10                jbe    short loc_95        ; Jump if below or =
  1687. F000:85E0  B8 1000                mov    ax,1000h
  1688. F000:85E3  80 FB 03                cmp    bl,3
  1689. F000:85E6  76 08                jbe    short loc_95        ; Jump if below or =
  1690. F000:85E8  80 FB 07                cmp    bl,7
  1691. F000:85EB  74 03                je    short loc_95        ; Jump if equal
  1692. F000:85ED  B8 4000                mov    ax,4000h
  1693. F000:85F0            loc_95:                        ;  xref F000:85DE, 85E6, 85EB
  1694. F000:85F0  A3 004C                mov    video_buf_siz,ax    ; (0040:004C=10A0h)
  1695. F000:85F3  33 C0                xor    ax,ax            ; Zero register
  1696. F000:85F5  A3 004E                mov    video_segment,ax    ; (0040:004E=0)
  1697. F000:85F8  A2 0062                mov    video_page,al        ; (0040:0062=0)
  1698. F000:85FB  BF 0050                mov    di,seg seg_c
  1699. F000:85FE  B9 0008                mov    cx,8
  1700.   
  1701. F000:8601            locloop_96:                    ;  xref F000:8605
  1702. F000:8601  89 05                mov    [di],ax
  1703. F000:8603  47                    inc    di
  1704. F000:8604  47                    inc    di
  1705. F000:8605  E2 FA                loop    locloop_96        ; Loop if cx > 0
  1706.   
  1707. F000:8607  53                    push    bx
  1708. F000:8608  06                    push    es
  1709. F000:8609  8E C1                mov    es,cx
  1710. F000:860B  26: C4 36 0074            les    si,dword ptr es:video_hdw_off    ; (0000:0074=0F0A4h) Load 32 bit ptr
  1711. F000:8610  80 FB 06                cmp    bl,6
  1712.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 30
  1713.  
  1714. F000:8613  75 02                jne    short loc_97        ; Jump if not equal
  1715. F000:8615  FE CB                dec    bl
  1716. F000:8617            loc_97:                        ;  xref F000:8613
  1717. F000:8617  D0 EB                shr    bl,1            ; Shift w/zeros fill
  1718. F000:8619  C0 E3 04                shl    bl,4            ; Shift w/zeros fill
  1719. F000:861C  32 FF                xor    bh,bh            ; Zero register
  1720. F000:861E  03 F3                add    si,bx
  1721. F000:8620  B9 0010                mov    cx,10h
  1722.   
  1723. F000:8623            locloop_98:                    ;  xref F000:8633
  1724. F000:8623  8A C7                mov    al,bh
  1725. F000:8625  EE                    out    dx,al            ; port 3B4h, MDA/EGA reg index
  1726.                                         ;  al = 0, horiz char total
  1727. F000:8626  EB 00                jmp    short loc_99        ; (8628)
  1728. F000:8628            loc_99:                        ;  xref F000:8626
  1729. F000:8628  42                    inc    dx
  1730. F000:8629  26: 8A 04                mov    al,es:[si]
  1731. F000:862C  46                    inc    si
  1732. F000:862D  EE                    out    dx,al            ; port 3B5h, MDA/EGA indxd data
  1733. F000:862E  EB 00                jmp    short loc_100        ; (8630)
  1734. F000:8630            loc_100:                    ;  xref F000:862E
  1735. F000:8630  FE C7                inc    bh
  1736. F000:8632  4A                    dec    dx
  1737. F000:8633  E2 EE                loop    locloop_98        ; Loop if cx > 0
  1738.   
  1739. F000:8635  26: 8B 44 FA                mov    ax,es:[si-6]
  1740. F000:8639  86 C4                xchg    al,ah
  1741. F000:863B  A3 0060                mov    vid_curs_mode,ax    ; (0040:0060=2000h)
  1742. F000:863E  07                    pop    es
  1743. F000:863F  5B                    pop    bx
  1744. F000:8640  B9 0800                mov    cx,800h
  1745. F000:8643  B8 0720                mov    ax,720h
  1746. F000:8646  80 FB 07                cmp    bl,7
  1747. F000:8649  74 0A                je    short loc_101        ; Jump if equal
  1748. F000:864B  B9 2000                mov    cx,2000h
  1749. F000:864E  80 FB 03                cmp    bl,3
  1750. F000:8651  76 02                jbe    short loc_101        ; Jump if below or =
  1751. F000:8653  33 C0                xor    ax,ax            ; Zero register
  1752. F000:8655            loc_101:                    ;  xref F000:8649, 8651
  1753. F000:8655  33 FF                xor    di,di            ; Zero register
  1754. F000:8657  FA                    cli                ; Disable interrupts
  1755. F000:8658  FC                    cld                ; Clear direction
  1756. F000:8659  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  1757. F000:865B  FB                    sti                ; Enable interrupts
  1758. F000:865C  A0 0065                mov    al,video_mode_reg    ; (0040:0065=29h)
  1759. F000:865F  83 C2 04                add    dx,4
  1760. F000:8662  EE                    out    dx,al            ; port 3B8h, MDA video control
  1761. F000:8663  EB 00                jmp    short loc_102        ; (8665)
  1762. F000:8665            loc_102:                    ;  xref F000:8663
  1763. F000:8665  A0 0066                mov    al,video_color        ; (0040:0066=30h)
  1764. F000:8668  42                    inc    dx
  1765. F000:8669  EE                    out    dx,al            ; port 3B9h, CGA color(port3D9)
  1766. F000:866A  C3                    retn
  1767.                 sub_2        endp
  1768.   
  1769.   
  1770.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1771.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 31
  1772.  
  1773.                 ;                   SUBROUTINE
  1774.                 ;
  1775.                 ;         Called from:     F000:8516, 857B
  1776.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1777.   
  1778.                 sub_3        proc    near
  1779. F000:866B  89 0E 0060                mov    vid_curs_mode,cx    ; (0040:0060=2000h)
  1780. F000:866F  B0 0A                mov    al,0Ah
  1781. F000:8671  EB 3A                jmp    short loc_105        ; (86AD)
  1782. F000:8673  90                    db    90h
  1783.   
  1784.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1785.                 ;
  1786.                 ;         Called from:     F000:8518, 857B
  1787.   
  1788.                 sub_4:
  1789. F000:8674            loc_103:                    ;  xref F000:8586
  1790. F000:8674  1E                    push    ds
  1791. F000:8675  50                    push    ax
  1792. F000:8676  53                    push    bx
  1793. F000:8677  51                    push    cx
  1794. F000:8678  52                    push    dx
  1795. F000:8679  B8 0040                mov    ax,seg_b
  1796. F000:867C  8E D8                mov    ds,ax
  1797. F000:867E  8A C7                mov    al,bh
  1798. F000:8680  8A DF                mov    bl,bh
  1799. F000:8682  32 FF                xor    bh,bh            ; Zero register
  1800. F000:8684  D1 E3                shl    bx,1            ; Shift w/zeros fill
  1801. F000:8686  89 97 0050                mov    [bx+50h],dx
  1802.                         nop                ;*Fixup for MASM (M)
  1803. F000:868A  3A 06 0062                cmp    al,video_page        ; (0040:0062=0)
  1804. F000:868E  75 03                jne    short loc_104        ; Jump if not equal
  1805. F000:8690  E8 0006                call    sub_5            ; (8699)
  1806. F000:8693            loc_104:                    ;  xref F000:868E
  1807. F000:8693  5A                    pop    dx
  1808. F000:8694  59                    pop    cx
  1809. F000:8695  5B                    pop    bx
  1810. F000:8696  58                    pop    ax
  1811. F000:8697  1F                    pop    ds
  1812. F000:8698  CF                    iret                ; Interrupt return
  1813.   
  1814.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1815.                 ;
  1816.                 ;         Called from:     F000:8690, 87AD
  1817.   
  1818.                 sub_5:
  1819. F000:8699  8A C6                mov    al,dh
  1820. F000:869B  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  1821. F000:869F  32 F6                xor    dh,dh            ; Zero register
  1822. F000:86A1  03 C2                add    ax,dx
  1823. F000:86A3  8B 0E 004E                mov    cx,video_segment    ; (0040:004E=0)
  1824. F000:86A7  D1 E9                shr    cx,1            ; Shift w/zeros fill
  1825. F000:86A9  03 C8                add    cx,ax
  1826. F000:86AB  B0 0E                mov    al,0Eh
  1827.                 sub_3        endp
  1828.   
  1829.   
  1830.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 32
  1831.  
  1832.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1833.                 ;                   SUBROUTINE
  1834.                 ;
  1835.                 ;         Called from:     F000:87A4
  1836.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1837.   
  1838.                 sub_6        proc    near
  1839. F000:86AD            loc_105:                    ;  xref F000:8671
  1840. F000:86AD  8B 16 0063                mov    dx,@video_port        ; (0040:0063=3D4h)
  1841. F000:86B1  EE                    out    dx,al            ; port 3D4h, CGA/EGA reg index
  1842.                                         ;  al = 0Ch, start address high
  1843. F000:86B2  EB 00                jmp    short loc_106        ; (86B4)
  1844. F000:86B4            loc_106:                    ;  xref F000:86B2
  1845. F000:86B4  42                    inc    dx
  1846. F000:86B5  86 C5                xchg    al,ch
  1847. F000:86B7  EE                    out    dx,al            ; port 3D5h, CGA/EGA indxd data
  1848. F000:86B8  FE C5                inc    ch
  1849. F000:86BA  EB 00                jmp    short loc_107        ; (86BC)
  1850. F000:86BC            loc_107:                    ;  xref F000:86BA
  1851. F000:86BC  4A                    dec    dx
  1852. F000:86BD  86 C5                xchg    al,ch
  1853. F000:86BF  EE                    out    dx,al            ; port 3D4h, CGA/EGA reg index
  1854.                                         ;  al = 0Dh, start address low
  1855. F000:86C0  EB 00                jmp    short loc_108        ; (86C2)
  1856. F000:86C2            loc_108:                    ;  xref F000:86C0
  1857. F000:86C2  42                    inc    dx
  1858. F000:86C3  86 C1                xchg    al,cl
  1859. F000:86C5  EE                    out    dx,al            ; port 3D5h, CGA/EGA indxd data
  1860. F000:86C6  C3                    retn
  1861.                 sub_6        endp
  1862.   
  1863.   
  1864.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1865.                 ;                   SUBROUTINE
  1866.                 ;
  1867.                 ;         Called from:     F000:851A, 857B
  1868.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1869.   
  1870.                 sub_7        proc    near
  1871. F000:86C7            loc_109:                    ;  xref F000:8589
  1872. F000:86C7  1E                    push    ds
  1873. F000:86C8  53                    push    bx
  1874. F000:86C9  8A DF                mov    bl,bh
  1875. F000:86CB  32 FF                xor    bh,bh            ; Zero register
  1876. F000:86CD  D1 E3                shl    bx,1            ; Shift w/zeros fill
  1877. F000:86CF  BA 0040                mov    dx,seg seg_b
  1878. F000:86D2  8E DA                mov    ds,dx
  1879. F000:86D4  8B 97 0050                mov    dx,[bx+50h]
  1880.                         nop                ;*Fixup for MASM (M)
  1881. F000:86D8  8B 0E 0060                mov    cx,vid_curs_mode    ; (0040:0060=2000h)
  1882. F000:86DC  5B                    pop    bx
  1883. F000:86DD  1F                    pop    ds
  1884. F000:86DE  CF                    iret                ; Interrupt return
  1885.                 sub_7        endp
  1886.   
  1887.   
  1888.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1889.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 33
  1890.  
  1891.                 ;                   SUBROUTINE
  1892.                 ;
  1893.                 ;         Called from:     F000:851C, 857B
  1894.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1895.   
  1896.                 sub_8        proc    near
  1897. F000:86DF  8B EC                mov    bp,sp
  1898. F000:86E1  8B 16 0063                mov    dx,@video_port        ; (0040:0063=3D4h)
  1899. F000:86E5  83 C2 06                add    dx,6
  1900. F000:86E8  8B F2                mov    si,dx
  1901. F000:86EA  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  1902. F000:86EB  A8 04                test    al,4
  1903. F000:86ED  B4 00                mov    ah,0
  1904. F000:86EF  74 03                jz    short loc_110        ; Jump if zero
  1905. F000:86F1  E9 008B                jmp    loc_125            ; (877F)
  1906. F000:86F4            loc_110:                    ;  xref F000:86EF
  1907. F000:86F4  A8 02                test    al,2
  1908. F000:86F6  75 03                jnz    short loc_111        ; Jump if not zero
  1909. F000:86F8  E9 0088                jmp    loc_126            ; (8783)
  1910. F000:86FB            loc_111:                    ;  xref F000:86F6
  1911. F000:86FB  83 EA 06                sub    dx,6
  1912. F000:86FE  B0 10                mov    al,10h
  1913. F000:8700  B5 11                mov    ch,11h
  1914. F000:8702  EE                    out    dx,al            ; port 3D4h, CGA/EGA reg index
  1915.                                         ;  al = 10h, light pen high
  1916. F000:8703  EB 00                jmp    short loc_112        ; (8705)
  1917. F000:8705            loc_112:                    ;  xref F000:8703
  1918. F000:8705  EB 00                jmp    short loc_113        ; (8707)
  1919. F000:8707            loc_113:                    ;  xref F000:8705
  1920. F000:8707  42                    inc    dx
  1921. F000:8708  EC                    in    al,dx            ; port 3D5h, CGA/EGA indxd data
  1922. F000:8709  86 C5                xchg    al,ch
  1923. F000:870B  4A                    dec    dx
  1924. F000:870C  EB 00                jmp    short loc_114        ; (870E)
  1925. F000:870E            loc_114:                    ;  xref F000:870C
  1926. F000:870E  EB 00                jmp    short loc_115        ; (8710)
  1927. F000:8710            loc_115:                    ;  xref F000:870E
  1928. F000:8710  EE                    out    dx,al            ; port 3D4h, CGA/EGA reg index
  1929.                                         ;  al = 11h, light pen low
  1930. F000:8711  EB 00                jmp    short loc_116        ; (8713)
  1931. F000:8713            loc_116:                    ;  xref F000:8711
  1932. F000:8713  EB 00                jmp    short loc_117        ; (8715)
  1933. F000:8715            loc_117:                    ;  xref F000:8713
  1934. F000:8715  42                    inc    dx
  1935. F000:8716  EC                    in    al,dx            ; port 3D5h, CGA/EGA indxd data
  1936. F000:8717  86 C1                xchg    al,cl
  1937. F000:8719  A1 004E                mov    ax,video_segment    ; (0040:004E=0)
  1938. F000:871C  D1 E8                shr    ax,1            ; Shift w/zeros fill
  1939. F000:871E  2B C8                sub    cx,ax
  1940. F000:8720  A0 0049                mov    al,video_mode        ; (0040:0049=3)
  1941. F000:8723  BB F0FC                mov    bx,0F0FCh
  1942. F000:8726  2E: D7                xlat cs:[bx]            ; al=[al+[bx]] table
  1943. F000:8728  2B C8                sub    cx,ax
  1944. F000:872A  79 02                jns    short loc_118        ; Jump if not sign
  1945. F000:872C  33 C9                xor    cx,cx            ; Zero register
  1946. F000:872E            loc_118:                    ;  xref F000:872A
  1947. F000:872E  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  1948.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 34
  1949.  
  1950. F000:8732  80 FC 04                cmp    ah,4
  1951. F000:8735  72 04                jb    short loc_119        ; Jump if below
  1952. F000:8737  80 FC 07                cmp    ah,7
  1953. F000:873A  F5                    cmc                ; Complement carry
  1954. F000:873B            loc_119:                    ;  xref F000:8735
  1955. F000:873B  A0 004A                mov    al,byte ptr video_columns    ; (0040:004A=50h)
  1956. F000:873E  91                    xchg    ax,cx
  1957. F000:873F  72 02                jc    short loc_120        ; Jump if carry Set
  1958. F000:8741  B1 28                mov    cl,28h            ; '('
  1959. F000:8743            loc_120:                    ;  xref F000:873F
  1960. F000:8743  F6 F1                div    cl            ; al, ah rem = ax/reg
  1961. F000:8745  8A E8                mov    ch,al
  1962. F000:8747  86 C4                xchg    al,ah
  1963. F000:8749  8B D0                mov    dx,ax
  1964. F000:874B  98                    cbw                ; Convrt byte to word
  1965. F000:874C  8B D8                mov    bx,ax
  1966. F000:874E  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  1967. F000:8752  80 FC 04                cmp    ah,4
  1968. F000:8755  72 04                jb    short loc_121        ; Jump if below
  1969. F000:8757  80 FC 07                cmp    ah,7
  1970. F000:875A  F5                    cmc                ; Complement carry
  1971. F000:875B            loc_121:                    ;  xref F000:8755
  1972. F000:875B  72 11                jc    short loc_122        ; Jump if carry Set
  1973. F000:875D  D0 E5                shl    ch,1            ; Shift w/zeros fill
  1974. F000:875F  C0 EE 02                shr    dh,2            ; Shift w/zeros fill
  1975. F000:8762  80 FC 06                cmp    ah,6
  1976. F000:8765  75 0A                jne    short loc_123        ; Jump if not equal
  1977. F000:8767  D0 E2                shl    dl,1            ; Shift w/zeros fill
  1978. F000:8769  C1 E3 04                shl    bx,4            ; Shift w/zeros fill
  1979. F000:876C  EB 06                jmp    short loc_124        ; (8774)
  1980. F000:876E            loc_122:                    ;  xref F000:875B
  1981. F000:876E  C0 E5 03                shl    ch,3            ; Shift w/zeros fill
  1982. F000:8771            loc_123:                    ;  xref F000:8765
  1983. F000:8771  C1 E3 03                shl    bx,3            ; Shift w/zeros fill
  1984. F000:8774            loc_124:                    ;  xref F000:876C
  1985. F000:8774  89 56 10                mov    [bp+10h],dx
  1986. F000:8777  88 6E 13                mov    [bp+13h],ch
  1987. F000:877A  89 5E 0E                mov    [bp+0Eh],bx
  1988. F000:877D  B4 01                mov    ah,1
  1989. F000:877F            loc_125:                    ;  xref F000:86F1
  1990. F000:877F  8B D6                mov    dx,si
  1991. F000:8781  42                    inc    dx
  1992. F000:8782  EE                    out    dx,al            ; port 3DBh, CGA light pen clr
  1993. F000:8783            loc_126:                    ;  xref F000:86F8
  1994. F000:8783  88 66 15                mov    [bp+15h],ah
  1995. F000:8786  C3                    retn
  1996.                 sub_8        endp
  1997.   
  1998.   
  1999.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2000.                 ;                   SUBROUTINE
  2001.                 ;
  2002.                 ;         Called from:     F000:851E, 857B
  2003.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2004.   
  2005.                 sub_9        proc    near
  2006. F000:8787            loc_127:                    ;  xref F000:858C
  2007.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 35
  2008.  
  2009. F000:8787  1E                    push    ds
  2010. F000:8788  50                    push    ax
  2011. F000:8789  53                    push    bx
  2012. F000:878A  51                    push    cx
  2013. F000:878B  52                    push    dx
  2014. F000:878C  BA 0040                mov    dx,seg seg_b
  2015. F000:878F  8E DA                mov    ds,dx
  2016. F000:8791  A2 0062                mov    video_page,al        ; (0040:0062=0)
  2017. F000:8794  98                    cbw                ; Convrt byte to word
  2018. F000:8795  8B D8                mov    bx,ax
  2019. F000:8797  F7 26 004C                mul    video_buf_siz        ; (0040:004C=10A0h) ax = data * ax
  2020. F000:879B  A3 004E                mov    video_segment,ax    ; (0040:004E=0)
  2021. F000:879E  D1 E8                shr    ax,1            ; Shift w/zeros fill
  2022. F000:87A0  8B C8                mov    cx,ax
  2023. F000:87A2  B0 0C                mov    al,0Ch
  2024. F000:87A4  E8 FF06                call    sub_6            ; (86AD)
  2025. F000:87A7  D1 E3                shl    bx,1            ; Shift w/zeros fill
  2026. F000:87A9  8B 97 0050                mov    dx,[bx+50h]
  2027.                         nop                ;*Fixup for MASM (M)
  2028. F000:87AD  E8 FEE9                call    sub_5            ; (8699)
  2029. F000:87B0  5A                    pop    dx
  2030. F000:87B1  59                    pop    cx
  2031. F000:87B2  5B                    pop    bx
  2032. F000:87B3  58                    pop    ax
  2033. F000:87B4  1F                    pop    ds
  2034. F000:87B5  CF                    iret                ; Interrupt return
  2035.                 sub_9        endp
  2036.   
  2037.   
  2038.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2039.                 ;                   SUBROUTINE
  2040.                 ;
  2041.                 ;         Called from:     F000:8520, 857B
  2042.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2043.   
  2044.                 sub_10        proc    near
  2045. F000:87B6  32 DB                xor    bl,bl            ; Zero register
  2046. F000:87B8  EB 05                jmp    short loc_128        ; (87BF)
  2047.   
  2048.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2049.                 ;
  2050.                 ;         Called from:     F000:8522, 857B
  2051.   
  2052.                 sub_11:
  2053. F000:87BA  B3 FF                mov    bl,0FFh
  2054. F000:87BC  8B F2                mov    si,dx
  2055. F000:87BE  FD                    std                ; Set direction flag
  2056. F000:87BF            loc_128:                    ;  xref F000:87B8
  2057. F000:87BF  1E                    push    ds
  2058. F000:87C0  53                    push    bx
  2059. F000:87C1  2B D1                sub    dx,cx
  2060. F000:87C3  81 C2 0101                add    dx,101h
  2061. F000:87C7  52                    push    dx
  2062. F000:87C8  50                    push    ax
  2063. F000:87C9  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  2064. F000:87CD  80 FC 04                cmp    ah,4
  2065. F000:87D0  72 04                jb    short loc_129        ; Jump if below
  2066.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 36
  2067.  
  2068. F000:87D2  80 FC 07                cmp    ah,7
  2069. F000:87D5  F5                    cmc                ; Complement carry
  2070. F000:87D6            loc_129:                    ;  xref F000:87D0
  2071. F000:87D6  BA 0028                mov    dx,28h
  2072. F000:87D9  73 20                jnc    short loc_133        ; Jump if carry=0
  2073. F000:87DB  80 FC 02                cmp    ah,2
  2074. F000:87DE  74 05                je    short loc_130        ; Jump if equal
  2075. F000:87E0  80 FC 03                cmp    ah,3
  2076. F000:87E3  75 12                jne    short loc_132        ; Jump if not equal
  2077. F000:87E5            loc_130:                    ;  xref F000:87DE
  2078. F000:87E5  BA 03DA                mov    dx,3DAh
  2079. F000:87E8  51                    push    cx
  2080. F000:87E9  33 C9                xor    cx,cx            ; Zero register
  2081.   
  2082. F000:87EB            locloop_131:                    ;  xref F000:87EE
  2083. F000:87EB  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2084. F000:87EC  A8 08                test    al,8
  2085. F000:87EE  E1 FB                loopz    locloop_131        ; Loop if zf=1, cx>0
  2086.   
  2087. F000:87F0  59                    pop    cx
  2088. F000:87F1  B0 25                mov    al,25h            ; '%'
  2089. F000:87F3  BA 03D8                mov    dx,3D8h
  2090. F000:87F6  EE                    out    dx,al            ; port 3D8h, CGA video control
  2091. F000:87F7            loc_132:                    ;  xref F000:87E3
  2092. F000:87F7  8B 16 004A                mov    dx,video_columns    ; (0040:004A=50h)
  2093. F000:87FB            loc_133:                    ;  xref F000:87D9
  2094. F000:87FB  8B EA                mov    bp,dx
  2095. F000:87FD  D1 E5                shl    bp,1            ; Shift w/zeros fill
  2096. F000:87FF  22 DB                and    bl,bl
  2097. F000:8801  74 04                jz    short loc_134        ; Jump if zero
  2098. F000:8803  F7 DD                neg    bp
  2099. F000:8805  8B CE                mov    cx,si
  2100. F000:8807            loc_134:                    ;  xref F000:8801
  2101. F000:8807  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  2102. F000:880B  80 FC 04                cmp    ah,4
  2103. F000:880E  72 04                jb    short loc_135        ; Jump if below
  2104. F000:8810  80 FC 07                cmp    ah,7
  2105. F000:8813  F5                    cmc                ; Complement carry
  2106. F000:8814            loc_135:                    ;  xref F000:880E
  2107. F000:8814  91                    xchg    ax,cx
  2108. F000:8815  8A CA                mov    cl,dl
  2109. F000:8817  8B D0                mov    dx,ax
  2110. F000:8819  73 16                jnc    short loc_136        ; Jump if carry=0
  2111. F000:881B  8A C6                mov    al,dh
  2112. F000:881D  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2113. F000:8821  32 F6                xor    dh,dh            ; Zero register
  2114. F000:8823  03 C2                add    ax,dx
  2115. F000:8825  D1 E0                shl    ax,1            ; Shift w/zeros fill
  2116. F000:8827  03 06 004E                add    ax,video_segment    ; (0040:004E=0)
  2117. F000:882B  8B F8                mov    di,ax
  2118. F000:882D  58                    pop    ax
  2119. F000:882E  5A                    pop    dx
  2120. F000:882F  EB 2D                jmp    short loc_139        ; (885E)
  2121. F000:8831            loc_136:                    ;  xref F000:8819
  2122. F000:8831  8A C6                mov    al,dh
  2123. F000:8833  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2124. F000:8837  C1 E0 02                shl    ax,2            ; Shift w/zeros fill
  2125.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 37
  2126.  
  2127. F000:883A  32 F6                xor    dh,dh            ; Zero register
  2128. F000:883C  03 C2                add    ax,dx
  2129. F000:883E  8B F8                mov    di,ax
  2130. F000:8840  58                    pop    ax
  2131. F000:8841  5A                    pop    dx
  2132. F000:8842  C0 E6 02                shl    dh,2            ; Shift w/zeros fill
  2133. F000:8845  80 FD 06                cmp    ch,6
  2134. F000:8848  74 09                je    short loc_137        ; Jump if equal
  2135. F000:884A  D1 E7                shl    di,1            ; Shift w/zeros fill
  2136. F000:884C  D0 E2                shl    dl,1            ; Shift w/zeros fill
  2137. F000:884E  22 DB                and    bl,bl
  2138. F000:8850  74 01                jz    short loc_137        ; Jump if zero
  2139. F000:8852  47                    inc    di
  2140. F000:8853            loc_137:                    ;  xref F000:8848, 8850
  2141. F000:8853  22 DB                and    bl,bl
  2142. F000:8855  74 04                jz    short loc_138        ; Jump if zero
  2143. F000:8857  81 C7 00F0                add    di,0F0h
  2144. F000:885B            loc_138:                    ;  xref F000:8855
  2145. F000:885B  C0 E0 02                shl    al,2            ; Shift w/zeros fill
  2146. F000:885E            loc_139:                    ;  xref F000:882F
  2147. F000:885E  06                    push    es
  2148. F000:885F  1F                    pop    ds
  2149. F000:8860  8A FE                mov    bh,dh
  2150. F000:8862  0A C0                or    al,al            ; Zero ?
  2151. F000:8864  74 68                jz    short loc_145        ; Jump if zero
  2152. F000:8866  2A F0                sub    dh,al
  2153. F000:8868  74 64                jz    short loc_145        ; Jump if zero
  2154. F000:886A  8A F8                mov    bh,al
  2155. F000:886C  F6 E1                mul    cl            ; ax = reg * al
  2156. F000:886E  D1 E0                shl    ax,1            ; Shift w/zeros fill
  2157. F000:8870  22 DB                and    bl,bl
  2158. F000:8872  74 02                jz    short loc_140        ; Jump if zero
  2159. F000:8874  F7 D8                neg    ax
  2160. F000:8876            loc_140:                    ;  xref F000:8872
  2161. F000:8876  8B F7                mov    si,di
  2162. F000:8878  03 F0                add    si,ax
  2163. F000:887A  32 E4                xor    ah,ah            ; Zero register
  2164. F000:887C  86 E5                xchg    ah,ch
  2165. F000:887E  80 FC 04                cmp    ah,4
  2166. F000:8881  72 04                jb    short loc_141        ; Jump if below
  2167. F000:8883  80 FC 07                cmp    ah,7
  2168. F000:8886  F5                    cmc                ; Complement carry
  2169. F000:8887            loc_141:                    ;  xref F000:8881
  2170. F000:8887  53                    push    bx
  2171. F000:8888  72 55                jc    short loc_147        ; Jump if carry Set
  2172. F000:888A            loc_142:                    ;  xref F000:88AC
  2173. F000:888A  8B C6                mov    ax,si
  2174. F000:888C  8B DF                mov    bx,di
  2175. F000:888E  8A CA                mov    cl,dl
  2176. F000:8890  F3/ A4                rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  2177. F000:8892  8B FB                mov    di,bx
  2178. F000:8894  8B F0                mov    si,ax
  2179. F000:8896  81 C6 2000                add    si,2000h
  2180. F000:889A  81 C7 2000                add    di,2000h
  2181. F000:889E  8A CA                mov    cl,dl
  2182. F000:88A0  F3/ A4                rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  2183. F000:88A2  8B FB                mov    di,bx
  2184.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 38
  2185.  
  2186. F000:88A4  8B F0                mov    si,ax
  2187. F000:88A6  03 F5                add    si,bp
  2188. F000:88A8  03 FD                add    di,bp
  2189. F000:88AA  FE CE                dec    dh
  2190. F000:88AC  75 DC                jnz    loc_142            ; Jump if not zero
  2191. F000:88AE  5B                    pop    bx
  2192. F000:88AF            loc_143:                    ;  xref F000:88DB
  2193. F000:88AF  58                    pop    ax
  2194. F000:88B0  8A C4                mov    al,ah
  2195. F000:88B2  8A F7                mov    dh,bh
  2196. F000:88B4            loc_144:                    ;  xref F000:88CA
  2197. F000:88B4  8B DF                mov    bx,di
  2198. F000:88B6  8A CA                mov    cl,dl
  2199. F000:88B8  F3/ AA                rep    stosb            ; Rep when cx >0 Store al to es:[di]
  2200. F000:88BA  8B FB                mov    di,bx
  2201. F000:88BC  81 C7 2000                add    di,2000h
  2202. F000:88C0  8A CA                mov    cl,dl
  2203. F000:88C2  F3/ AA                rep    stosb            ; Rep when cx >0 Store al to es:[di]
  2204. F000:88C4  8B FB                mov    di,bx
  2205. F000:88C6  03 FD                add    di,bp
  2206. F000:88C8  FE CE                dec    dh
  2207. F000:88CA  75 E8                jnz    loc_144            ; Jump if not zero
  2208. F000:88CC  1F                    pop    ds
  2209. F000:88CD  C3                    retn
  2210. F000:88CE            loc_145:                    ;  xref F000:8864, 8868
  2211. F000:88CE  32 E4                xor    ah,ah            ; Zero register
  2212. F000:88D0  86 E5                xchg    ah,ch
  2213. F000:88D2  80 FC 04                cmp    ah,4
  2214. F000:88D5  72 04                jb    short loc_146        ; Jump if below
  2215. F000:88D7  80 FC 07                cmp    ah,7
  2216. F000:88DA  F5                    cmc                ; Complement carry
  2217. F000:88DB            loc_146:                    ;  xref F000:88D5
  2218. F000:88DB  73 D2                jnc    loc_143            ; Jump if carry=0
  2219. F000:88DD  EB 15                jmp    short loc_148        ; (88F4)
  2220. F000:88DF            loc_147:                    ;  xref F000:8888, 88F1
  2221. F000:88DF  8B C6                mov    ax,si
  2222. F000:88E1  8B DF                mov    bx,di
  2223. F000:88E3  8A CA                mov    cl,dl
  2224. F000:88E5  F3/ A5                rep    movsw            ; Rep when cx >0 Mov [si] to es:[di]
  2225. F000:88E7  8B FB                mov    di,bx
  2226. F000:88E9  8B F0                mov    si,ax
  2227. F000:88EB  03 F5                add    si,bp
  2228. F000:88ED  03 FD                add    di,bp
  2229. F000:88EF  FE CE                dec    dh
  2230. F000:88F1  75 EC                jnz    loc_147            ; Jump if not zero
  2231. F000:88F3  5B                    pop    bx
  2232. F000:88F4            loc_148:                    ;  xref F000:88DD
  2233. F000:88F4  58                    pop    ax
  2234. F000:88F5  B0 20                mov    al,20h            ; ' '
  2235. F000:88F7  8A F7                mov    dh,bh
  2236. F000:88F9            loc_149:                    ;  xref F000:8905
  2237. F000:88F9  8B DF                mov    bx,di
  2238. F000:88FB  8A CA                mov    cl,dl
  2239. F000:88FD  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  2240. F000:88FF  8B FB                mov    di,bx
  2241. F000:8901  03 FD                add    di,bp
  2242. F000:8903  FE CE                dec    dh
  2243.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 39
  2244.  
  2245. F000:8905  75 F2                jnz    loc_149            ; Jump if not zero
  2246. F000:8907  1F                    pop    ds
  2247.                         assume    ds:seg_a
  2248. F000:8908  80 3E 0049 07            cmp    byte ptr vectr_12h_off+1,7    ; (0000:0049=0F8h)
  2249. F000:890D  74 07                je    short loc_ret_150    ; Jump if equal
  2250. F000:890F  A0 0065                mov    al,ds:data_3e        ; (0000:0065=0)
  2251. F000:8912  BA 03D8                mov    dx,3D8h
  2252. F000:8915  EE                    out    dx,al            ; port 3D8h, CGA video control
  2253.   
  2254. F000:8916            loc_ret_150:                    ;  xref F000:890D
  2255. F000:8916  C3                    retn
  2256.                 sub_10        endp
  2257.   
  2258.   
  2259.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2260.                 ;                   SUBROUTINE
  2261.                 ;
  2262.                 ;         Called from:     F000:8524, 857B
  2263.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2264.   
  2265.                 sub_12        proc    near
  2266. F000:8917  8B EC                mov    bp,sp
  2267.                         assume    ds:seg_b
  2268. F000:8919  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  2269. F000:891D  80 FC 07                cmp    ah,7
  2270. F000:8920  74 05                je    short loc_151        ; Jump if equal
  2271. F000:8922  80 FC 04                cmp    ah,4
  2272. F000:8925  73 56                jae    short loc_156        ; Jump if above or =
  2273. F000:8927            loc_151:                    ;  xref F000:8920
  2274. F000:8927  8A DF                mov    bl,bh
  2275. F000:8929  32 FF                xor    bh,bh            ; Zero register
  2276. F000:892B  D1 E3                shl    bx,1            ; Shift w/zeros fill
  2277. F000:892D  8B 97 0050                mov    dx,[bx+50h]
  2278.                         nop                ;*Fixup for MASM (M)
  2279. F000:8931  8A C6                mov    al,dh
  2280. F000:8933  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2281. F000:8937  32 F6                xor    dh,dh            ; Zero register
  2282. F000:8939  03 C2                add    ax,dx
  2283. F000:893B  D1 E0                shl    ax,1            ; Shift w/zeros fill
  2284. F000:893D  D1 EB                shr    bx,1            ; Shift w/zeros fill
  2285. F000:893F  93                    xchg    ax,bx
  2286. F000:8940  F7 26 004C                mul    video_buf_siz        ; (0040:004C=10A0h) ax = data * ax
  2287. F000:8944  03 C3                add    ax,bx
  2288. F000:8946  8B F0                mov    si,ax
  2289. F000:8948  FA                    cli                ; Disable interrupts
  2290. F000:8949  FC                    cld                ; Clear direction
  2291. F000:894A  80 3E 0049 07            cmp    video_mode,7        ; (0040:0049=3)
  2292. F000:894F  74 26                je    short loc_155        ; Jump if equal
  2293. F000:8951  80 3E 0049 02            cmp    video_mode,2        ; (0040:0049=3)
  2294. F000:8956  72 1F                jb    short loc_155        ; Jump if below
  2295. F000:8958  8B 16 0063                mov    dx,@video_port        ; (0040:0063=3D4h)
  2296. F000:895C  83 C2 06                add    dx,6
  2297. F000:895F  33 C9                xor    cx,cx            ; Zero register
  2298.   
  2299. F000:8961            locloop_152:                    ;  xref F000:896C
  2300. F000:8961  FB                    sti                ; Enable interrupts
  2301. F000:8962  FC                    cld                ; Clear direction
  2302.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 40
  2303.  
  2304. F000:8963  FA                    cli                ; Disable interrupts
  2305. F000:8964  FC                    cld                ; Clear direction
  2306. F000:8965  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2307. F000:8966  A8 08                test    al,8
  2308. F000:8968  75 0D                jnz    short loc_155        ; Jump if not zero
  2309. F000:896A  A8 01                test    al,1
  2310. F000:896C  E0 F3                loopnz    locloop_152        ; Loop if zf=0, cx>0
  2311.   
  2312. F000:896E  33 C9                xor    cx,cx            ; Zero register
  2313.   
  2314. F000:8970            locloop_153:                    ;  xref F000:8975
  2315. F000:8970  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2316. F000:8971  EB 00                jmp    short loc_154        ; (8973)
  2317. F000:8973            loc_154:                    ;  xref F000:8971
  2318. F000:8973  A8 09                test    al,9
  2319. F000:8975  E1 F9                loopz    locloop_153        ; Loop if zf=1, cx>0
  2320.   
  2321. F000:8977            loc_155:                    ;  xref F000:894F, 8956, 8968
  2322. F000:8977  26: AD                lods word ptr es:[si]        ; String [si] to ax
  2323. F000:8979  FB                    sti                ; Enable interrupts
  2324. F000:897A  E9 0080                jmp    loc_161            ; (89FD)
  2325. F000:897D            loc_156:                    ;  xref F000:8925
  2326. F000:897D  BF 0008                mov    di,8
  2327. F000:8980  2B E7                sub    sp,di
  2328. F000:8982  F7 DF                neg    di
  2329. F000:8984  BB 2000                mov    bx,2000h
  2330. F000:8987  8B 16 0050                mov    dx,vid_curs_pos0    ; (0040:0050=184Fh)
  2331. F000:898B  8A C6                mov    al,dh
  2332. F000:898D  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2333. F000:8991  C1 E0 02                shl    ax,2            ; Shift w/zeros fill
  2334. F000:8994  32 F6                xor    dh,dh            ; Zero register
  2335. F000:8996  03 C2                add    ax,dx
  2336. F000:8998  8B F0                mov    si,ax
  2337. F000:899A  80 3E 0049 06            cmp    video_mode,6        ; (0040:0049=3)
  2338. F000:899F  8C C1                mov    cx,es
  2339. F000:89A1  8E D9                mov    ds,cx
  2340. F000:89A3  74 13                jz    short loc_158        ; Jump if zero
  2341. F000:89A5  D1 E6                shl    si,1            ; Shift w/zeros fill
  2342. F000:89A7            loc_157:                    ;  xref F000:89B4
  2343. F000:89A7  8B 04                mov    ax,[si]
  2344. F000:89A9  E8 0370                call    sub_25            ; (8D1C)
  2345. F000:89AC  8B 00                mov    ax,[bx+si]
  2346. F000:89AE  83 C6 50                add    si,50h
  2347. F000:89B1  E8 0368                call    sub_25            ; (8D1C)
  2348. F000:89B4  75 F1                jnz    loc_157            ; Jump if not zero
  2349. F000:89B6  EB 0F                jmp    short loc_159        ; (89C7)
  2350. F000:89B8            loc_158:                    ;  xref F000:89A3, 89C5
  2351. F000:89B8  8A 04                mov    al,[si]
  2352. F000:89BA  88 03                mov    [bp+di],al
  2353. F000:89BC  47                    inc    di
  2354. F000:89BD  8A 00                mov    al,[bx+si]
  2355. F000:89BF  83 C6 50                add    si,50h
  2356. F000:89C2  88 03                mov    [bp+di],al
  2357. F000:89C4  47                    inc    di
  2358. F000:89C5  75 F1                jnz    loc_158            ; Jump if not zero
  2359. F000:89C7            loc_159:                    ;  xref F000:89B6
  2360. F000:89C7  8C D7                mov    di,ss
  2361.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 41
  2362.  
  2363. F000:89C9  8E DF                mov    ds,di
  2364. F000:89CB  8C CF                mov    di,cs
  2365. F000:89CD  8E C7                mov    es,di
  2366. F000:89CF  BF FA6E                mov    di,0FA6Eh
  2367. F000:89D2  32 C0                xor    al,al            ; Zero register
  2368. F000:89D4            loc_160:                    ;  xref F000:89E8, 89FB
  2369. F000:89D4  8B F4                mov    si,sp
  2370. F000:89D6  B9 0008                mov    cx,8
  2371. F000:89D9  FA                    cli                ; Disable interrupts
  2372. F000:89DA  FC                    cld                ; Clear direction
  2373. F000:89DB  F3/ A6                repe    cmpsb            ; Rep zf=1+cx >0 Cmp [si] to es:[di]
  2374. F000:89DD  FB                    sti                ; Enable interrupts
  2375. F000:89DE  74 1D                jz    short loc_161        ; Jump if zero
  2376. F000:89E0  FE C0                inc    al
  2377. F000:89E2  74 19                jz    short loc_161        ; Jump if zero
  2378. F000:89E4  03 F9                add    di,cx
  2379. F000:89E6  3C 80                cmp    al,80h
  2380. F000:89E8  75 EA                jne    loc_160            ; Jump if not equal
  2381. F000:89EA  33 C0                xor    ax,ax            ; Zero register
  2382. F000:89EC  8E C0                mov    es,ax
  2383. F000:89EE  26: C4 3E 007C            les    di,dword ptr es:graph_tbl_off    ; (0000:007C=4CF0h) Load 32 bit ptr
  2384. F000:89F3  8C C1                mov    cx,es
  2385. F000:89F5  0B CF                or    cx,di
  2386. F000:89F7  74 04                jz    short loc_161        ; Jump if zero
  2387. F000:89F9  B0 80                mov    al,80h
  2388. F000:89FB  EB D7                jmp    short loc_160        ; (89D4)
  2389. F000:89FD            loc_161:                    ;  xref F000:897A, 89DE, 89E2, 89F7
  2390. F000:89FD  89 46 14                mov    [bp+14h],ax
  2391. F000:8A00  8B E5                mov    sp,bp
  2392. F000:8A02  C3                    retn
  2393.                 sub_12        endp
  2394.   
  2395.   
  2396.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2397.                 ;                   SUBROUTINE
  2398.                 ;
  2399.                 ;         Called from:     F000:8526, 857B
  2400.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2401.   
  2402.                 sub_13        proc    near
  2403. F000:8A03  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  2404. F000:8A07  80 FC 07                cmp    ah,7
  2405. F000:8A0A  74 05                je    short loc_162        ; Jump if equal
  2406. F000:8A0C  80 FC 04                cmp    ah,4
  2407. F000:8A0F  73 74                jae    short loc_171        ; Jump if above or =
  2408. F000:8A11            loc_162:                    ;  xref F000:8A0A
  2409. F000:8A11  8A E3                mov    ah,bl
  2410. F000:8A13  50                    push    ax
  2411. F000:8A14  8A DF                mov    bl,bh
  2412. F000:8A16  32 FF                xor    bh,bh            ; Zero register
  2413. F000:8A18  D1 E3                shl    bx,1            ; Shift w/zeros fill
  2414. F000:8A1A  8B 97 0050                mov    dx,[bx+50h]
  2415.                         nop                ;*Fixup for MASM (M)
  2416. F000:8A1E  8A C6                mov    al,dh
  2417. F000:8A20  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2418. F000:8A24  32 F6                xor    dh,dh            ; Zero register
  2419. F000:8A26  03 C2                add    ax,dx
  2420.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 42
  2421.  
  2422. F000:8A28  D1 E0                shl    ax,1            ; Shift w/zeros fill
  2423. F000:8A2A  D1 EB                shr    bx,1            ; Shift w/zeros fill
  2424. F000:8A2C  93                    xchg    ax,bx
  2425. F000:8A2D  F7 26 004C                mul    video_buf_siz        ; (0040:004C=10A0h) ax = data * ax
  2426. F000:8A31  03 C3                add    ax,bx
  2427. F000:8A33  8B F8                mov    di,ax
  2428. F000:8A35  58                    pop    ax
  2429. F000:8A36  80 3E 0049 07            cmp    video_mode,7        ; (0040:0049=3)
  2430. F000:8A3B  74 07                je    short loc_163        ; Jump if equal
  2431. F000:8A3D  80 3E 0049 02            cmp    video_mode,2        ; (0040:0049=3)
  2432. F000:8A42  73 0A                jae    short loc_165        ; Jump if above or =
  2433. F000:8A44            loc_163:                    ;  xref F000:8A3B
  2434. F000:8A44  FA                    cli                ; Disable interrupts
  2435. F000:8A45  FC                    cld                ; Clear direction
  2436. F000:8A46  AB                    stosw                ; Store ax to es:[di]
  2437. F000:8A47  49                    dec    cx
  2438. F000:8A48  74 02                jz    short loc_164        ; Jump if zero
  2439. F000:8A4A  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  2440. F000:8A4C            loc_164:                    ;  xref F000:8A48
  2441. F000:8A4C  FB                    sti                ; Enable interrupts
  2442. F000:8A4D  C3                    retn
  2443. F000:8A4E            loc_165:                    ;  xref F000:8A42
  2444. F000:8A4E  8B D8                mov    bx,ax
  2445. F000:8A50  8B F1                mov    si,cx
  2446. F000:8A52  8B 16 0063                mov    dx,@video_port        ; (0040:0063=3D4h)
  2447. F000:8A56  83 C2 06                add    dx,6
  2448. F000:8A59            loc_166:                    ;  xref F000:8A76
  2449. F000:8A59  33 C9                xor    cx,cx            ; Zero register
  2450.   
  2451. F000:8A5B            locloop_167:                    ;  xref F000:8A66
  2452. F000:8A5B  FB                    sti                ; Enable interrupts
  2453. F000:8A5C  FC                    cld                ; Clear direction
  2454. F000:8A5D  FA                    cli                ; Disable interrupts
  2455. F000:8A5E  FC                    cld                ; Clear direction
  2456. F000:8A5F  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2457. F000:8A60  A8 08                test    al,8
  2458. F000:8A62  75 0D                jnz    short loc_170        ; Jump if not zero
  2459. F000:8A64  A8 01                test    al,1
  2460. F000:8A66  E0 F3                loopnz    locloop_167        ; Loop if zf=0, cx>0
  2461.   
  2462. F000:8A68  33 C9                xor    cx,cx            ; Zero register
  2463.   
  2464. F000:8A6A            locloop_168:                    ;  xref F000:8A6F
  2465. F000:8A6A  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2466. F000:8A6B  EB 00                jmp    short loc_169        ; (8A6D)
  2467. F000:8A6D            loc_169:                    ;  xref F000:8A6B
  2468. F000:8A6D  A8 09                test    al,9
  2469. F000:8A6F  E1 F9                loopz    locloop_168        ; Loop if zf=1, cx>0
  2470.   
  2471. F000:8A71            loc_170:                    ;  xref F000:8A62
  2472. F000:8A71  8B C3                mov    ax,bx
  2473. F000:8A73  AB                    stosw                ; Store ax to es:[di]
  2474. F000:8A74  FB                    sti                ; Enable interrupts
  2475. F000:8A75  4E                    dec    si
  2476. F000:8A76  75 E1                jnz    loc_166            ; Jump if not zero
  2477. F000:8A78  C3                    retn
  2478.   
  2479.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 43
  2480.  
  2481.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2482.                 ;
  2483.                 ;         Called from:     F000:8528, 857B
  2484.   
  2485.                 sub_14:
  2486. F000:8A79  8A 26 0049                mov    ah,video_mode        ; (0040:0049=3)
  2487. F000:8A7D  80 FC 07                cmp    ah,7
  2488. F000:8A80  74 05                je    short loc_172        ; Jump if equal
  2489. F000:8A82  80 FC 04                cmp    ah,4
  2490. F000:8A85            loc_171:                    ;  xref F000:8A0F
  2491. F000:8A85  73 65                jae    short loc_181        ; Jump if above or =
  2492. F000:8A87            loc_172:                    ;  xref F000:8A80
  2493. F000:8A87  50                    push    ax
  2494. F000:8A88  8A DF                mov    bl,bh
  2495. F000:8A8A  32 FF                xor    bh,bh            ; Zero register
  2496. F000:8A8C  D1 E3                shl    bx,1            ; Shift w/zeros fill
  2497. F000:8A8E  8B 97 0050                mov    dx,[bx+50h]
  2498.                         nop                ;*Fixup for MASM (M)
  2499. F000:8A92  8A C6                mov    al,dh
  2500. F000:8A94  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2501. F000:8A98  32 F6                xor    dh,dh            ; Zero register
  2502. F000:8A9A  03 C2                add    ax,dx
  2503. F000:8A9C  D1 E0                shl    ax,1            ; Shift w/zeros fill
  2504. F000:8A9E  D1 EB                shr    bx,1            ; Shift w/zeros fill
  2505. F000:8AA0  93                    xchg    ax,bx
  2506. F000:8AA1  F7 26 004C                mul    video_buf_siz        ; (0040:004C=10A0h) ax = data * ax
  2507. F000:8AA5  03 C3                add    ax,bx
  2508. F000:8AA7  8B F8                mov    di,ax
  2509. F000:8AA9  58                    pop    ax
  2510. F000:8AAA  80 3E 0049 07            cmp    video_mode,7        ; (0040:0049=3)
  2511. F000:8AAF  74 07                je    short loc_173        ; Jump if equal
  2512. F000:8AB1  80 3E 0049 02            cmp    video_mode,2        ; (0040:0049=3)
  2513. F000:8AB6  73 08                jae    short loc_175        ; Jump if above or =
  2514. F000:8AB8            loc_173:                    ;  xref F000:8AAF
  2515. F000:8AB8  FA                    cli                ; Disable interrupts
  2516. F000:8AB9  FC                    cld                ; Clear direction
  2517.   
  2518. F000:8ABA            locloop_174:                    ;  xref F000:8ABC
  2519. F000:8ABA  AA                    stosb                ; Store al to es:[di]
  2520. F000:8ABB  47                    inc    di
  2521. F000:8ABC  E2 FC                loop    locloop_174        ; Loop if cx > 0
  2522.   
  2523. F000:8ABE  FB                    sti                ; Enable interrupts
  2524. F000:8ABF  C3                    retn
  2525. F000:8AC0            loc_175:                    ;  xref F000:8AB6
  2526. F000:8AC0  8A D8                mov    bl,al
  2527. F000:8AC2  8B F1                mov    si,cx
  2528. F000:8AC4  8B 16 0063                mov    dx,@video_port        ; (0040:0063=3D4h)
  2529. F000:8AC8  83 C2 06                add    dx,6
  2530. F000:8ACB            loc_176:                    ;  xref F000:8AE9
  2531. F000:8ACB  33 C9                xor    cx,cx            ; Zero register
  2532.   
  2533. F000:8ACD            locloop_177:                    ;  xref F000:8AD8
  2534. F000:8ACD  FB                    sti                ; Enable interrupts
  2535. F000:8ACE  FC                    cld                ; Clear direction
  2536. F000:8ACF  FA                    cli                ; Disable interrupts
  2537. F000:8AD0  FC                    cld                ; Clear direction
  2538.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 44
  2539.  
  2540. F000:8AD1  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2541. F000:8AD2  A8 08                test    al,8
  2542. F000:8AD4  75 0D                jnz    short loc_180        ; Jump if not zero
  2543. F000:8AD6  A8 01                test    al,1
  2544. F000:8AD8  E0 F3                loopnz    locloop_177        ; Loop if zf=0, cx>0
  2545.   
  2546. F000:8ADA  33 C9                xor    cx,cx            ; Zero register
  2547.   
  2548. F000:8ADC            locloop_178:                    ;  xref F000:8AE1
  2549. F000:8ADC  EC                    in    al,dx            ; port 3DAh, CGA/EGA vid status
  2550. F000:8ADD  EB 00                jmp    short loc_179        ; (8ADF)
  2551. F000:8ADF            loc_179:                    ;  xref F000:8ADD
  2552. F000:8ADF  A8 09                test    al,9
  2553. F000:8AE1  E1 F9                loopz    locloop_178        ; Loop if zf=1, cx>0
  2554.   
  2555. F000:8AE3            loc_180:                    ;  xref F000:8AD4
  2556. F000:8AE3  8A C3                mov    al,bl
  2557. F000:8AE5  AA                    stosb                ; Store al to es:[di]
  2558. F000:8AE6  FB                    sti                ; Enable interrupts
  2559. F000:8AE7  47                    inc    di
  2560. F000:8AE8  4E                    dec    si
  2561. F000:8AE9  75 E0                jnz    loc_176            ; Jump if not zero
  2562. F000:8AEB  C3                    retn
  2563. F000:8AEC            loc_181:                    ;  xref F000:8A85
  2564. F000:8AEC  55                    push    bp
  2565. F000:8AED  8B E9                mov    bp,cx
  2566. F000:8AEF  50                    push    ax
  2567. F000:8AF0  25 007F                and    ax,7Fh
  2568. F000:8AF3  C1 E0 03                shl    ax,3            ; Shift w/zeros fill
  2569. F000:8AF6  50                    push    ax
  2570. F000:8AF7  8B 16 0050                mov    dx,vid_curs_pos0    ; (0040:0050=184Fh)
  2571. F000:8AFB  8A C6                mov    al,dh
  2572. F000:8AFD  F6 26 004A                mul    byte ptr video_columns    ; (0040:004A=50h) ax = data * al
  2573. F000:8B01  C1 E0 02                shl    ax,2            ; Shift w/zeros fill
  2574. F000:8B04  32 F6                xor    dh,dh            ; Zero register
  2575. F000:8B06  03 C2                add    ax,dx
  2576. F000:8B08  8B F8                mov    di,ax
  2577. F000:8B0A  BE FA6E                mov    si,0FA6Eh
  2578. F000:8B0D  8A 36 0049                mov    dh,video_mode        ; (0040:0049=3)
  2579. F000:8B11  8A D3                mov    dl,bl
  2580. F000:8B13  0E                    push    cs
  2581. F000:8B14  1F                    pop    ds
  2582. F000:8B15  58                    pop    ax
  2583. F000:8B16  5B                    pop    bx
  2584. F000:8B17  22 DB                and    bl,bl
  2585. F000:8B19  79 08                jns    short loc_182        ; Jump if not sign
  2586. F000:8B1B  33 F6                xor    si,si            ; Zero register
  2587. F000:8B1D  8E DE                mov    ds,si
  2588. F000:8B1F  C5 36 007C                lds    si,dword ptr ds:graph_tbl_off    ; (0000:007C=4CF0h) Load 32 bit ptr
  2589. F000:8B23            loc_182:                    ;  xref F000:8B19
  2590. F000:8B23  03 F0                add    si,ax
  2591. F000:8B25  80 FE 06                cmp    dh,6
  2592. F000:8B28  74 43                je    short loc_188        ; Jump if equal
  2593. F000:8B2A  D1 E7                shl    di,1            ; Shift w/zeros fill
  2594. F000:8B2C  8A C2                mov    al,dl
  2595. F000:8B2E  24 03                and    al,3
  2596. F000:8B30  32 F6                xor    dh,dh            ; Zero register
  2597.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 45
  2598.  
  2599. F000:8B32            loc_183:                    ;  xref F000:8B37
  2600. F000:8B32  0A F0                or    dh,al
  2601. F000:8B34  C0 E0 02                shl    al,2            ; Shift w/zeros fill
  2602. F000:8B37  75 F9                jnz    loc_183            ; Jump if not zero
  2603. F000:8B39            loc_184:                    ;  xref F000:8B69
  2604. F000:8B39  B9 0004                mov    cx,4
  2605.   
  2606. F000:8B3C            locloop_185:                    ;  xref F000:8B5F
  2607. F000:8B3C  8A 04                mov    al,[si]
  2608. F000:8B3E  46                    inc    si
  2609. F000:8B3F  E8 01F1                call    sub_26            ; (8D33)
  2610. F000:8B42  79 03                jns    short loc_186        ; Jump if not sign
  2611. F000:8B44  26: 33 05                xor    ax,es:[di]
  2612. F000:8B47            loc_186:                    ;  xref F000:8B42
  2613. F000:8B47  26: 89 05                mov    es:[di],ax
  2614. F000:8B4A  8A 04                mov    al,[si]
  2615. F000:8B4C  46                    inc    si
  2616. F000:8B4D  E8 01E3                call    sub_26            ; (8D33)
  2617. F000:8B50  79 05                jns    short loc_187        ; Jump if not sign
  2618. F000:8B52  26: 33 85 2000            xor    ax,es:data_28e[di]    ; (B800:2000=720h)
  2619. F000:8B57            loc_187:                    ;  xref F000:8B50
  2620. F000:8B57  26: 89 85 2000            mov    es:data_28e[di],ax    ; (B800:2000=720h)
  2621. F000:8B5C  83 C7 50                add    di,50h
  2622. F000:8B5F  E2 DB                loop    locloop_185        ; Loop if cx > 0
  2623.   
  2624. F000:8B61  81 EF 013E                sub    di,13Eh
  2625. F000:8B65  83 EE 08                sub    si,8
  2626. F000:8B68  4D                    dec    bp
  2627. F000:8B69  75 CE                jnz    loc_184            ; Jump if not zero
  2628. F000:8B6B  5D                    pop    bp
  2629. F000:8B6C  C3                    retn
  2630. F000:8B6D            loc_188:                    ;  xref F000:8B28
  2631. F000:8B6D  D0 E2                shl    dl,1            ; Shift w/zeros fill
  2632. F000:8B6F  9F                    lahf                ; Load ah from flags
  2633. F000:8B70            loc_189:                    ;  xref F000:8B9C
  2634. F000:8B70  B9 0004                mov    cx,4
  2635.   
  2636. F000:8B73            locloop_190:                    ;  xref F000:8B92
  2637. F000:8B73  8A 04                mov    al,[si]
  2638. F000:8B75  46                    inc    si
  2639. F000:8B76  9E                    sahf                ; Store ah into flags
  2640. F000:8B77  73 03                jnc    short loc_191        ; Jump if carry=0
  2641. F000:8B79  26: 32 05                xor    al,es:[di]
  2642. F000:8B7C            loc_191:                    ;  xref F000:8B77
  2643. F000:8B7C  26: 88 05                mov    es:[di],al
  2644. F000:8B7F  8A 04                mov    al,[si]
  2645. F000:8B81  46                    inc    si
  2646. F000:8B82  9E                    sahf                ; Store ah into flags
  2647. F000:8B83  73 05                jnc    short loc_192        ; Jump if carry=0
  2648. F000:8B85  26: 32 85 2000            xor    al,es:data_28e[di]    ; (B800:2000=20h)
  2649. F000:8B8A            loc_192:                    ;  xref F000:8B83
  2650. F000:8B8A  26: 88 85 2000            mov    es:data_28e[di],al    ; (B800:2000=20h)
  2651. F000:8B8F  83 C7 50                add    di,50h
  2652. F000:8B92  E2 DF                loop    locloop_190        ; Loop if cx > 0
  2653.   
  2654. F000:8B94  81 EF 013F                sub    di,13Fh
  2655. F000:8B98  83 EE 08                sub    si,8
  2656.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 46
  2657.  
  2658. F000:8B9B  4D                    dec    bp
  2659. F000:8B9C  75 D2                jnz    loc_189            ; Jump if not zero
  2660. F000:8B9E  5D                    pop    bp
  2661. F000:8B9F  C3                    retn
  2662.                 sub_13        endp
  2663.   
  2664.   
  2665.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2666.                 ;                   SUBROUTINE
  2667.                 ;
  2668.                 ;         Called from:     F000:852A, 857B
  2669.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2670.   
  2671.                 sub_15        proc    near
  2672. F000:8BA0  A0 0066                mov    al,video_color        ; (0040:0066=30h)
  2673. F000:8BA3  22 FF                and    bh,bh
  2674. F000:8BA5  74 0B                jz    short loc_193        ; Jump if zero
  2675. F000:8BA7  0C 20                or    al,20h            ; ' '
  2676. F000:8BA9  F6 C3 01                test    bl,1
  2677. F000:8BAC  75 0B                jnz    short loc_194        ; Jump if not zero
  2678. F000:8BAE  24 DF                and    al,0DFh
  2679. F000:8BB0  EB 07                jmp    short loc_194        ; (8BB9)
  2680. F000:8BB2            loc_193:                    ;  xref F000:8BA5
  2681. F000:8BB2  24 E0                and    al,0E0h
  2682. F000:8BB4  80 E3 1F                and    bl,1Fh
  2683. F000:8BB7  0A C3                or    al,bl
  2684. F000:8BB9            loc_194:                    ;  xref F000:8BAC, 8BB0
  2685. F000:8BB9  A2 0066                mov    video_color,al        ; (0040:0066=30h)
  2686. F000:8BBC  8B 16 0063                mov    dx,@video_port        ; (0040:0063=3D4h)
  2687. F000:8BC0  83 C2 05                add    dx,5
  2688. F000:8BC3  EE                    out    dx,al            ; port 3D9h, CGA color control
  2689. F000:8BC4  C3                    retn
  2690.                 sub_15        endp
  2691.   
  2692.   
  2693.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2694.                 ;                   SUBROUTINE
  2695.                 ;
  2696.                 ;         Called from:     F000:852C, 857B
  2697.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2698.   
  2699.                 sub_16        proc    near
  2700. F000:8BC5  8A D8                mov    bl,al
  2701. F000:8BC7  E8 011A                call    sub_24            ; (8CE4)
  2702. F000:8BCA  8A E3                mov    ah,bl
  2703. F000:8BCC  22 DD                and    bl,ch
  2704. F000:8BCE  22 E4                and    ah,ah
  2705. F000:8BD0  79 04                jns    short loc_195        ; Jump if not sign
  2706. F000:8BD2  32 C3                xor    al,bl
  2707. F000:8BD4  EB 06                jmp    short loc_196        ; (8BDC)
  2708. F000:8BD6            loc_195:                    ;  xref F000:8BD0
  2709. F000:8BD6  F6 D5                not    ch
  2710. F000:8BD8  22 C5                and    al,ch
  2711. F000:8BDA  0A C3                or    al,bl
  2712. F000:8BDC            loc_196:                    ;  xref F000:8BD4
  2713. F000:8BDC  D2 C8                ror    al,cl            ; Rotate
  2714. F000:8BDE  26: 88 04                mov    es:[si],al
  2715.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 47
  2716.  
  2717. F000:8BE1  C3                    retn
  2718.                 sub_16        endp
  2719.   
  2720.   
  2721.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2722.                 ;                   SUBROUTINE
  2723.                 ;
  2724.                 ;         Called from:     F000:852E, 857B
  2725.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2726.   
  2727.                 sub_17        proc    near
  2728. F000:8BE2  E8 00FF                call    sub_24            ; (8CE4)
  2729. F000:8BE5  22 C5                and    al,ch
  2730. F000:8BE7  8B EC                mov    bp,sp
  2731. F000:8BE9  88 46 14                mov    [bp+14h],al
  2732. F000:8BEC  C3                    retn
  2733.                 sub_17        endp
  2734.   
  2735.   
  2736.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2737.                 ;                   SUBROUTINE
  2738.                 ;
  2739.                 ;         Called from:     F000:8530, 857B
  2740.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2741.   
  2742.                 sub_18        proc    near
  2743. F000:8BED            loc_197:                    ;  xref F000:8583
  2744. F000:8BED  1E                    push    ds
  2745. F000:8BEE  50                    push    ax
  2746. F000:8BEF  53                    push    bx
  2747. F000:8BF0  51                    push    cx
  2748. F000:8BF1  52                    push    dx
  2749. F000:8BF2  50                    push    ax
  2750. F000:8BF3  B8 0040                mov    ax,seg_b
  2751. F000:8BF6  8E D8                mov    ds,ax
  2752. F000:8BF8  B4 03                mov    ah,3
  2753. F000:8BFA  8A 3E 0062                mov    bh,video_page        ; (0040:0062=0)
  2754. F000:8BFE  CD 10                int    10h            ; Video display   ah=functn 03h
  2755.                                         ;  get cursor loc in dx, mode cx
  2756. F000:8C00  58                    pop    ax
  2757. F000:8C01  3C 0D                cmp    al,0Dh
  2758. F000:8C03  76 0F                jbe    short loc_201        ; Jump if below or =
  2759. F000:8C05            loc_198:                    ;  xref F000:8C20
  2760. F000:8C05  B4 0A                mov    ah,0Ah
  2761. F000:8C07  E8 009B                call    sub_22            ; (8CA5)
  2762. F000:8C0A            loc_199:                    ;  xref F000:8C25, 8C30, 8C34
  2763. F000:8C0A  B4 02                mov    ah,2
  2764. F000:8C0C  CD 10                int    10h            ; Video display   ah=functn 02h
  2765.                                         ;  set cursor location in dx
  2766. F000:8C0E            loc_200:                    ;  xref F000:8C2A
  2767. F000:8C0E  5A                    pop    dx
  2768. F000:8C0F  59                    pop    cx
  2769. F000:8C10  5B                    pop    bx
  2770. F000:8C11  58                    pop    ax
  2771. F000:8C12  1F                    pop    ds
  2772. F000:8C13  CF                    iret                ; Interrupt return
  2773. F000:8C14            loc_201:                    ;  xref F000:8C03
  2774.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 48
  2775.  
  2776. F000:8C14  74 16                jz    short loc_203        ; Jump if zero
  2777. F000:8C16  3C 08                cmp    al,8
  2778. F000:8C18  74 14                je    short loc_204        ; Jump if equal
  2779. F000:8C1A  3C 07                cmp    al,7
  2780. F000:8C1C  74 09                je    short loc_202        ; Jump if equal
  2781. F000:8C1E  3C 0A                cmp    al,0Ah
  2782. F000:8C20  75 E3                jne    loc_198            ; Jump if not equal
  2783. F000:8C22  E8 008F                call    sub_23            ; (8CB4)
  2784. F000:8C25  EB E3                jmp    short loc_199        ; (8C0A)
  2785. F000:8C27            loc_202:                    ;  xref F000:8C1C
  2786. F000:8C27  E8 01B6                call    sub_30            ; (8DE0)
  2787. F000:8C2A  EB E2                jmp    short loc_200        ; (8C0E)
  2788. F000:8C2C            loc_203:                    ;  xref F000:8C14
  2789. F000:8C2C  32 D2                xor    dl,dl            ; Zero register
  2790. F000:8C2E            loc_204:                    ;  xref F000:8C18
  2791. F000:8C2E  22 D2                and    dl,dl
  2792. F000:8C30  74 D8                jz    loc_199            ; Jump if zero
  2793. F000:8C32  FE CA                dec    dl
  2794. F000:8C34  EB D4                jmp    short loc_199        ; (8C0A)
  2795.                 sub_18        endp
  2796.   
  2797.   
  2798.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2799.                 ;                   SUBROUTINE
  2800.                 ;
  2801.                 ;         Called from:     F000:8532, 857B
  2802.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2803.   
  2804.                 sub_19        proc    near
  2805. F000:8C36  A0 0049                mov    al,video_mode        ; (0040:0049=3)
  2806. F000:8C39  8A 26 004A                mov    ah,byte ptr video_columns    ; (0040:004A=50h)
  2807. F000:8C3D  8B EC                mov    bp,sp
  2808. F000:8C3F  89 46 14                mov    [bp+14h],ax
  2809. F000:8C42  A0 0062                mov    al,video_page        ; (0040:0062=0)
  2810. F000:8C45  88 46 0F                mov    [bp+0Fh],al
  2811. F000:8C48  C3                    retn
  2812.                 sub_19        endp
  2813.   
  2814.   
  2815.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2816.                 ;                   SUBROUTINE
  2817.                 ;
  2818.                 ;         Called from:     F000:8534, 8536, 8538, 857B
  2819.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2820.   
  2821.                 sub_20        proc    near
  2822. F000:8C49  C3                    retn
  2823.                 sub_20        endp
  2824.   
  2825.   
  2826.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2827.                 ;                   SUBROUTINE
  2828.                 ;
  2829.                 ;         Called from:     F000:853A, 857B
  2830.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2831.   
  2832.                 sub_21        proc    near
  2833.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 49
  2834.  
  2835. F000:8C4A  3C 04                cmp    al,4
  2836. F000:8C4C  73 56                jae    short loc_ret_210    ; Jump if above or =
  2837. F000:8C4E  E3 54                jcxz    short loc_ret_210    ; Jump if cx=0
  2838. F000:8C50  98                    cbw                ; Convrt byte to word
  2839. F000:8C51  8B F8                mov    di,ax
  2840. F000:8C53  8B F3                mov    si,bx
  2841. F000:8C55  32 DB                xor    bl,bl            ; Zero register
  2842. F000:8C57  86 DF                xchg    bl,bh
  2843. F000:8C59  87 DE                xchg    bx,si
  2844. F000:8C5B  D1 E6                shl    si,1            ; Shift w/zeros fill
  2845. F000:8C5D  FF B4 0050                push    word ptr [si+50h]
  2846.                         nop                ;*Fixup for MASM (M)
  2847. F000:8C61  B4 02                mov    ah,2
  2848. F000:8C63  CD 10                int    10h            ; Video display   ah=functn 02h
  2849.                                         ;  set cursor location in dx
  2850.   
  2851. F000:8C65            locloop_205:                    ;  xref F000:8C99
  2852. F000:8C65  26: 8A 46 00                mov    al,es:[bp]
  2853. F000:8C69  45                    inc    bp
  2854. F000:8C6A  3C 08                cmp    al,8
  2855. F000:8C6C  74 0C                je    short loc_206        ; Jump if equal
  2856. F000:8C6E  3C 0D                cmp    al,0Dh
  2857. F000:8C70  74 08                je    short loc_206        ; Jump if equal
  2858. F000:8C72  3C 07                cmp    al,7
  2859. F000:8C74  74 04                je    short loc_206        ; Jump if equal
  2860. F000:8C76  3C 0A                cmp    al,0Ah
  2861. F000:8C78  75 0A                jne    short loc_207        ; Jump if not equal
  2862. F000:8C7A            loc_206:                    ;  xref F000:8C6C, 8C70, 8C74
  2863. F000:8C7A  B4 0E                mov    ah,0Eh
  2864. F000:8C7C  CD 10                int    10h            ; Video display   ah=functn 0Eh
  2865.                                         ;  write char al, teletype mode
  2866. F000:8C7E  8B 94 0050                mov    dx,[si+50h]
  2867.                         nop                ;*Fixup for MASM (M)
  2868. F000:8C82  EB 11                jmp    short loc_209        ; (8C95)
  2869. F000:8C84            loc_207:                    ;  xref F000:8C78
  2870. F000:8C84  83 FF 01                cmp    di,1
  2871. F000:8C87  76 05                jbe    short loc_208        ; Jump if below or =
  2872. F000:8C89  26: 8A 5E 00                mov    bl,es:[bp]
  2873. F000:8C8D  45                    inc    bp
  2874. F000:8C8E            loc_208:                    ;  xref F000:8C87
  2875. F000:8C8E  B4 09                mov    ah,9
  2876. F000:8C90  51                    push    cx
  2877. F000:8C91  E8 0011                call    sub_22            ; (8CA5)
  2878. F000:8C94  59                    pop    cx
  2879. F000:8C95            loc_209:                    ;  xref F000:8C82
  2880. F000:8C95  B4 02                mov    ah,2
  2881. F000:8C97  CD 10                int    10h            ; Video display   ah=functn 02h
  2882.                                         ;  set cursor location in dx
  2883. F000:8C99  E2 CA                loop    locloop_205        ; Loop if cx > 0
  2884.   
  2885. F000:8C9B  5A                    pop    dx
  2886. F000:8C9C  D1 EF                shr    di,1            ; Shift w/zeros fill
  2887. F000:8C9E  72 04                jc    short loc_ret_210    ; Jump if carry Set
  2888. F000:8CA0  B4 02                mov    ah,2
  2889. F000:8CA2  CD 10                int    10h            ; Video display   ah=functn 02h
  2890.                                         ;  set cursor location in dx
  2891.   
  2892.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 50
  2893.  
  2894. F000:8CA4            loc_ret_210:                    ;  xref F000:8C4C, 8C4E, 8C9E
  2895. F000:8CA4  C3                    retn
  2896.                 sub_21        endp
  2897.   
  2898.   
  2899.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2900.                 ;                   SUBROUTINE
  2901.                 ;
  2902.                 ;         Called from:     F000:8C07, 8C91
  2903.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2904.   
  2905.                 sub_22        proc    near
  2906. F000:8CA5  B9 0001                mov    cx,1
  2907. F000:8CA8  CD 10                int    10h            ; Video display   ah=functn 0Ah
  2908.                                         ;  set char al at present curs
  2909. F000:8CAA  FE C2                inc    dl
  2910. F000:8CAC  3A 16 004A                cmp    dl,byte ptr video_columns    ; (0040:004A=50h)
  2911. F000:8CB0  75 31                jne    short loc_ret_213    ; Jump if not equal
  2912. F000:8CB2  32 D2                xor    dl,dl            ; Zero register
  2913.   
  2914.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2915.                 ;
  2916.                 ;         Called from:     F000:8C22
  2917.   
  2918.                 sub_23:
  2919. F000:8CB4  FE C6                inc    dh
  2920. F000:8CB6  80 FE 19                cmp    dh,19h
  2921. F000:8CB9  75 28                jne    short loc_ret_213    ; Jump if not equal
  2922. F000:8CBB  FE CE                dec    dh
  2923. F000:8CBD  80 3E 0049 07            cmp    video_mode,7        ; (0040:0049=3)
  2924. F000:8CC2  74 09                je    short loc_211        ; Jump if equal
  2925. F000:8CC4  80 3E 0049 04            cmp    video_mode,4        ; (0040:0049=3)
  2926. F000:8CC9  B4 00                mov    ah,0
  2927. F000:8CCB  73 04                jnc    short loc_212        ; Jump if carry=0
  2928. F000:8CCD            loc_211:                    ;  xref F000:8CC2
  2929. F000:8CCD  B4 08                mov    ah,8
  2930. F000:8CCF  CD 10                int    10h            ; Video display   ah=functn 08h
  2931.                                         ;  get char al & attrib ah @curs
  2932. F000:8CD1            loc_212:                    ;  xref F000:8CCB
  2933. F000:8CD1  53                    push    bx
  2934. F000:8CD2  52                    push    dx
  2935. F000:8CD3  33 C9                xor    cx,cx            ; Zero register
  2936. F000:8CD5  8A 16 004A                mov    dl,byte ptr video_columns    ; (0040:004A=50h)
  2937. F000:8CD9  FE CA                dec    dl
  2938. F000:8CDB  BB 0601                mov    bx,601h
  2939. F000:8CDE  93                    xchg    ax,bx
  2940. F000:8CDF  CD 10                int    10h            ; Video display   ah=functn 06h
  2941.                                         ;  scroll up, al=lines
  2942. F000:8CE1  5A                    pop    dx
  2943. F000:8CE2  5B                    pop    bx
  2944.   
  2945. F000:8CE3            loc_ret_213:                    ;  xref F000:8CB0, 8CB9
  2946. F000:8CE3  C3                    retn
  2947.                 sub_22        endp
  2948.   
  2949.   
  2950.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2951.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 51
  2952.  
  2953.                 ;                   SUBROUTINE
  2954.                 ;
  2955.                 ;         Called from:     F000:8BC7, 8BE2
  2956.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2957.   
  2958.                 sub_24        proc    near
  2959. F000:8CE4  D1 CA                ror    dx,1            ; Rotate
  2960. F000:8CE6  B0 50                mov    al,50h            ; 'P'
  2961. F000:8CE8  F6 E2                mul    dl            ; ax = reg * al
  2962. F000:8CEA  D0 E6                shl    dh,1            ; Shift w/zeros fill
  2963. F000:8CEC  73 03                jnc    short loc_214        ; Jump if carry=0
  2964. F000:8CEE  05 2000                add    ax,2000h
  2965. F000:8CF1            loc_214:                    ;  xref F000:8CEC
  2966. F000:8CF1  8B F0                mov    si,ax
  2967. F000:8CF3  8B C1                mov    ax,cx
  2968. F000:8CF5  B9 0103                mov    cx,103h
  2969. F000:8CF8  B2 07                mov    dl,7
  2970. F000:8CFA  22 D0                and    dl,al
  2971. F000:8CFC  80 3E 0049 06            cmp    video_mode,6        ; (0040:0049=3)
  2972. F000:8D01  73 0B                jae    short loc_215        ; Jump if above or =
  2973. F000:8D03  B9 0302                mov    cx,302h
  2974. F000:8D06  B2 03                mov    dl,3
  2975. F000:8D08  22 D0                and    dl,al
  2976. F000:8D0A  D0 E2                shl    dl,1            ; Shift w/zeros fill
  2977. F000:8D0C  FE C2                inc    dl
  2978. F000:8D0E            loc_215:                    ;  xref F000:8D01
  2979. F000:8D0E  FE C2                inc    dl
  2980. F000:8D10  D3 E8                shr    ax,cl            ; Shift w/zeros fill
  2981. F000:8D12  03 F0                add    si,ax
  2982. F000:8D14  8A CA                mov    cl,dl
  2983. F000:8D16  26: 8A 04                mov    al,es:[si]
  2984. F000:8D19  D2 C0                rol    al,cl            ; Rotate
  2985. F000:8D1B  C3                    retn
  2986.                 sub_24        endp
  2987.   
  2988.   
  2989.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2990.                 ;                   SUBROUTINE
  2991.                 ;
  2992.                 ;         Called from:     F000:89A9, 89B1
  2993.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2994.   
  2995.                 sub_25        proc    near
  2996. F000:8D1C  8B D0                mov    dx,ax
  2997. F000:8D1E  D1 E0                shl    ax,1            ; Shift w/zeros fill
  2998. F000:8D20  0B C2                or    ax,dx
  2999. F000:8D22  86 C4                xchg    al,ah
  3000. F000:8D24  B9 0008                mov    cx,8
  3001.   
  3002. F000:8D27            locloop_216:                    ;  xref F000:8D2D
  3003. F000:8D27  D1 E0                shl    ax,1            ; Shift w/zeros fill
  3004. F000:8D29  D0 D2                rcl    dl,1            ; Rotate thru carry
  3005. F000:8D2B  D1 E0                shl    ax,1            ; Shift w/zeros fill
  3006. F000:8D2D  E2 F8                loop    locloop_216        ; Loop if cx > 0
  3007.   
  3008. F000:8D2F  88 13                mov    [bp+di],dl
  3009. F000:8D31  47                    inc    di
  3010.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 52
  3011.  
  3012. F000:8D32  C3                    retn
  3013.                 sub_25        endp
  3014.   
  3015.   
  3016.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3017.                 ;                   SUBROUTINE
  3018.                 ;
  3019.                 ;         Called from:     F000:8B3F, 8B4D
  3020.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3021.   
  3022.                 sub_26        proc    near
  3023. F000:8D33  B4 08                mov    ah,8
  3024. F000:8D35            loc_217:                    ;  xref F000:8D3D
  3025. F000:8D35  D0 E0                shl    al,1            ; Shift w/zeros fill
  3026. F000:8D37  D1 D3                rcl    bx,1            ; Rotate thru carry
  3027. F000:8D39  D1 E3                shl    bx,1            ; Shift w/zeros fill
  3028. F000:8D3B  FE CC                dec    ah
  3029. F000:8D3D  75 F6                jnz    loc_217            ; Jump if not zero
  3030. F000:8D3F  8B C3                mov    ax,bx
  3031. F000:8D41  D1 E8                shr    ax,1            ; Shift w/zeros fill
  3032. F000:8D43  0B C3                or    ax,bx
  3033. F000:8D45  22 C6                and    al,dh
  3034. F000:8D47  22 E6                and    ah,dh
  3035. F000:8D49  86 C4                xchg    al,ah
  3036. F000:8D4B  22 D2                and    dl,dl
  3037. F000:8D4D  C3                    retn
  3038.                 sub_26        endp
  3039.   
  3040. F000:8D4E  50 A0 10 00 24 30            db    50h, 0A0h, 10h, 0, 24h, 30h
  3041. F000:8D54  3C 30 58 C3                db    3Ch, 30h, 58h, 0C3h
  3042. F000:8D58            loc_218:                    ;  xref F000:8119, 8186, 8D70, 8F89
  3043.                                         ;            9099
  3044. F000:8D58  8B D5                mov    dx,bp
  3045. F000:8D5A            loc_219:                    ;  xref F000:8D66
  3046. F000:8D5A  BC 8D5F                mov    sp,8D5Fh
  3047. F000:8D5D  EB 13                jmp    short loc_224        ; (8D72)
  3048.   
  3049. F000:8D5F            locloop_220:                    ;  xref F000:8D5F
  3050. F000:8D5F  E2 FE                loop    locloop_220        ; Loop if cx > 0
  3051.   
  3052.   
  3053. F000:8D61            locloop_221:                    ;  xref F000:8D61
  3054. F000:8D61  E2 FE                loop    locloop_221        ; Loop if cx > 0
  3055.   
  3056.   
  3057. F000:8D63            locloop_222:                    ;  xref F000:8D63
  3058. F000:8D63  E2 FE                loop    locloop_222        ; Loop if cx > 0
  3059.   
  3060. F000:8D65  4A                    dec    dx
  3061. F000:8D66  75 F2                jnz    loc_219            ; Jump if not zero
  3062. F000:8D68  BA 0006                mov    dx,6
  3063.   
  3064. F000:8D6B            locloop_223:                    ;  xref F000:8D6B, 8D6E
  3065. F000:8D6B  E2 FE                loop    locloop_223        ; Loop if cx > 0
  3066.   
  3067. F000:8D6D  4A                    dec    dx
  3068. F000:8D6E  75 FB                jnz    locloop_223        ; Jump if not zero
  3069.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 53
  3070.  
  3071. F000:8D70  EB E6                jmp    short loc_218        ; (8D58)
  3072. F000:8D72            loc_224:                    ;  xref F000:8D5D, 8DB3
  3073. F000:8D72  BB 0080                mov    bx,80h
  3074. F000:8D75  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  3075. F000:8D77  24 FE                and    al,0FEh
  3076. F000:8D79  EB 00                jmp    short loc_225        ; (8D7B)
  3077. F000:8D7B            loc_225:                    ;  xref F000:8D79
  3078. F000:8D7B  EB 00                jmp    short loc_226        ; (8D7D)
  3079. F000:8D7D            loc_226:                    ;  xref F000:8D7B, 8D90
  3080. F000:8D7D  0C 02                or    al,2
  3081. F000:8D7F  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3082. F000:8D81  B9 00E0                mov    cx,0E0h
  3083.   
  3084. F000:8D84            locloop_227:                    ;  xref F000:8D84
  3085. F000:8D84  E2 FE                loop    locloop_227        ; Loop if cx > 0
  3086.   
  3087. F000:8D86  24 FD                and    al,0FDh
  3088. F000:8D88  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3089.                                         ;  al = 0, disable parity
  3090. F000:8D8A  B9 00D0                mov    cx,0D0h
  3091.   
  3092. F000:8D8D            locloop_228:                    ;  xref F000:8D8D
  3093. F000:8D8D  E2 FE                loop    locloop_228        ; Loop if cx > 0
  3094.   
  3095. F000:8D8F  4B                    dec    bx
  3096. F000:8D90  75 EB                jnz    loc_226            ; Jump if not zero
  3097. F000:8D92  FF E4                jmp    sp            ;*Register jump
  3098. F000:8D94            loc_229:                    ;  xref F000:8FC1, 932B, 9331, AA33
  3099.                                         ;            AA60
  3100. F000:8D94  33 C0                xor    ax,ax            ; Zero register
  3101. F000:8D96  CD 10                int    10h            ; Video display   ah=functn 00h
  3102.                                         ;  set display mode in al
  3103. F000:8D98            loc_230:                    ;  xref F000:E9D0, E9FD
  3104. F000:8D98  E8 001E                call    sub_27            ; (8DB9)
  3105. F000:8D9B  BE D802                mov    si,0D802h
  3106. F000:8D9E  E8 0018                call    sub_27            ; (8DB9)
  3107. F000:8DA1  E8 00CF                call    sub_36            ; (8E73)
  3108. F000:8DA4  A8 20                test    al,20h            ; ' '
  3109. F000:8DA6  75 08                jnz    short loc_233        ; Jump if not zero
  3110. F000:8DA8            loc_231:                    ;  xref F000:8DAE
  3111. F000:8DA8  FA                    cli                ; Disable interrupts
  3112. F000:8DA9  E8 005B                call    sub_31            ; (8E07)
  3113.   
  3114. F000:8DAC            locloop_232:                    ;  xref F000:8DAC
  3115. F000:8DAC  E2 FE                loop    locloop_232        ; Loop if cx > 0
  3116.   
  3117. F000:8DAE  EB F8                jmp    short loc_231        ; (8DA8)
  3118. F000:8DB0            loc_233:                    ;  xref F000:8DA6
  3119. F000:8DB0  BC 8DB5                mov    sp,8DB5h
  3120. F000:8DB3  EB BD                jmp    short loc_224        ; (8D72)
  3121. F000:8DB5            loc_234:                    ;  xref F000:8DB7
  3122. F000:8DB5  FB                    sti                ; Enable interrupts
  3123. F000:8DB6  F4                    hlt                ; Halt processor
  3124. F000:8DB7  EB FC                jmp    short loc_234        ; (8DB5)
  3125.   
  3126.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3127.                 ;                   SUBROUTINE
  3128.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 54
  3129.  
  3130.                 ;
  3131.                 ;         Called from:     F000:8D98, 8D9E, 900E, 9017, 943D, 9826, AD3E
  3132.                 ;                  AD53, E9DD, E9E3
  3133.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3134.   
  3135.                 sub_27        proc    near
  3136. F000:8DB9            loc_235:                    ;  xref F000:8DC4
  3137. F000:8DB9  FA                    cli                ; Disable interrupts
  3138. F000:8DBA  FC                    cld                ; Clear direction
  3139. F000:8DBB  2E: AC                lods byte ptr cs:[si]        ; String [si] to al
  3140. F000:8DBD  22 C0                and    al,al
  3141. F000:8DBF  74 05                jz    short loc_ret_236    ; Jump if zero
  3142. F000:8DC1  E8 000E                call    sub_29            ; (8DD2)
  3143. F000:8DC4  EB F3                jmp    short loc_235        ; (8DB9)
  3144.   
  3145. F000:8DC6            loc_ret_236:                    ;  xref F000:8DBF
  3146. F000:8DC6  C3                    retn
  3147.                 sub_27        endp
  3148.   
  3149.   
  3150.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3151.                 ;                   SUBROUTINE
  3152.                 ;
  3153.                 ;         Called from:     F000:900B, 9011, 901E, 9745, 9823
  3154.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3155.   
  3156.                 sub_28        proc    near
  3157. F000:8DC7  B0 0D                mov    al,0Dh
  3158. F000:8DC9  E8 0006                call    sub_29            ; (8DD2)
  3159. F000:8DCC  B0 0A                mov    al,0Ah
  3160. F000:8DCE  E8 0001                call    sub_29            ; (8DD2)
  3161. F000:8DD1  C3                    retn
  3162.                 sub_28        endp
  3163.   
  3164.   
  3165.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3166.                 ;                   SUBROUTINE
  3167.                 ;
  3168.                 ;         Called from:     F000:8DC1, 8DC9, 8DCE, ABED, AD11, AD31, E9ED
  3169.                 ;                  E9F7, EA21
  3170.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3171.   
  3172.                 sub_29        proc    near
  3173. F000:8DD2  B4 0E                mov    ah,0Eh
  3174. F000:8DD4  CD 10                int    10h            ; Video display   ah=functn 0Eh
  3175.                                         ;  write char al, teletype mode
  3176. F000:8DD6  FA                    cli                ; Disable interrupts
  3177. F000:8DD7  FC                    cld                ; Clear direction
  3178. F000:8DD8  B0 8D                mov    al,8Dh
  3179. F000:8DDA  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  3180. F000:8DDC  E8 0064                call    sub_33            ; (8E43)
  3181. F000:8DDF  C3                    retn
  3182.                 sub_29        endp
  3183.   
  3184.   
  3185.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3186.                 ;                   SUBROUTINE
  3187.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 55
  3188.  
  3189.                 ;
  3190.                 ;         Called from:     F000:8C27, 9345, 9348
  3191.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3192.   
  3193.                 sub_30        proc    near
  3194. F000:8DE0  B0 B6                mov    al,0B6h
  3195. F000:8DE2  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  3196. F000:8DE4  EB 00                jmp    short loc_237        ; (8DE6)
  3197. F000:8DE6            loc_237:                    ;  xref F000:8DE4
  3198. F000:8DE6  EB 00                jmp    short loc_238        ; (8DE8)
  3199. F000:8DE8            loc_238:                    ;  xref F000:8DE6
  3200. F000:8DE8  B0 04                mov    al,4
  3201. F000:8DEA  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  3202. F000:8DEC  EB 00                jmp    short loc_239        ; (8DEE)
  3203. F000:8DEE            loc_239:                    ;  xref F000:8DEC
  3204. F000:8DEE  EB 00                jmp    short loc_240        ; (8DF0)
  3205. F000:8DF0            loc_240:                    ;  xref F000:8DEE
  3206. F000:8DF0  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  3207. F000:8DF2  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  3208. F000:8DF4  50                    push    ax
  3209. F000:8DF5  EB 00                jmp    short loc_241        ; (8DF7)
  3210. F000:8DF7            loc_241:                    ;  xref F000:8DF5
  3211. F000:8DF7  EB 00                jmp    short loc_242        ; (8DF9)
  3212. F000:8DF9            loc_242:                    ;  xref F000:8DF7
  3213. F000:8DF9  0C 03                or    al,3
  3214. F000:8DFB  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3215. F000:8DFD  B9 8000                mov    cx,8000h
  3216. F000:8E00  E8 6265                call    sub_264            ; (F068)
  3217. F000:8E03  58                    pop    ax
  3218. F000:8E04  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3219. F000:8E06  C3                    retn
  3220.                 sub_30        endp
  3221.   
  3222.   
  3223.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3224.                 ;                   SUBROUTINE
  3225.                 ;
  3226.                 ;         Called from:     F000:8DA9, 9351, 971F, 9728, 97C2, 97D2, BCE6
  3227.                 ;                  EC7A, ECC1
  3228.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3229.   
  3230.                 sub_31        proc    near
  3231. F000:8E07  B0 B6                mov    al,0B6h
  3232. F000:8E09  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  3233. F000:8E0B  EB 00                jmp    short loc_243        ; (8E0D)
  3234. F000:8E0D            loc_243:                    ;  xref F000:8E0B
  3235. F000:8E0D  EB 00                jmp    short loc_244        ; (8E0F)
  3236. F000:8E0F            loc_244:                    ;  xref F000:8E0D
  3237. F000:8E0F  B0 05                mov    al,5
  3238. F000:8E11  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  3239. F000:8E13  EB 00                jmp    short loc_245        ; (8E15)
  3240. F000:8E15            loc_245:                    ;  xref F000:8E13
  3241. F000:8E15  EB 00                jmp    short loc_246        ; (8E17)
  3242. F000:8E17            loc_246:                    ;  xref F000:8E15
  3243. F000:8E17  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  3244. F000:8E19  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  3245. F000:8E1B  50                    push    ax
  3246.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 56
  3247.  
  3248. F000:8E1C  EB 00                jmp    short loc_247        ; (8E1E)
  3249. F000:8E1E            loc_247:                    ;  xref F000:8E1C
  3250. F000:8E1E  EB 00                jmp    short loc_248        ; (8E20)
  3251. F000:8E20            loc_248:                    ;  xref F000:8E1E
  3252. F000:8E20  0C 03                or    al,3
  3253. F000:8E22  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3254. F000:8E24  B9 3000                mov    cx,3000h
  3255. F000:8E27  E8 623E                call    sub_264            ; (F068)
  3256. F000:8E2A  58                    pop    ax
  3257. F000:8E2B  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3258. F000:8E2D  C3                    retn
  3259.                 sub_31        endp
  3260.   
  3261.   
  3262.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3263.                 ;                   SUBROUTINE
  3264.                 ;
  3265.                 ;         Called from:     F000:91F8, 91FF, 9224, 922B
  3266.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3267.   
  3268.                 sub_32        proc    near
  3269. F000:8E2E            loc_249:                    ;  xref F000:850B
  3270. F000:8E2E  33 C9                xor    cx,cx            ; Zero register
  3271.   
  3272. F000:8E30            locloop_250:                    ;  xref F000:8E35
  3273. F000:8E30  EB 00                jmp    short loc_251        ; (8E32)
  3274. F000:8E32            loc_251:                    ;  xref F000:8E30
  3275. F000:8E32  EC                    in    al,dx            ; port 2, DMA-1 bas&add ch 1
  3276. F000:8E33  84 C4                test    al,ah
  3277. F000:8E35  E1 F9                loopz    locloop_250        ; Loop if zf=1, cx>0
  3278.   
  3279. F000:8E37  74 09                jz    short loc_ret_254    ; Jump if zero
  3280. F000:8E39  33 C9                xor    cx,cx            ; Zero register
  3281.   
  3282. F000:8E3B            locloop_252:                    ;  xref F000:8E40
  3283. F000:8E3B  EB 00                jmp    short loc_253        ; (8E3D)
  3284. F000:8E3D            loc_253:                    ;  xref F000:8E3B
  3285. F000:8E3D  EC                    in    al,dx            ; port 2, DMA-1 bas&add ch 1
  3286. F000:8E3E  84 C4                test    al,ah
  3287. F000:8E40  E0 F9                loopnz    locloop_252        ; Loop if zf=0, cx>0
  3288.   
  3289.   
  3290. F000:8E42            loc_ret_254:                    ;  xref F000:8E37
  3291. F000:8E42  C3                    retn
  3292.                 sub_32        endp
  3293.   
  3294.   
  3295.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3296.                 ;                   SUBROUTINE
  3297.                 ;
  3298.                 ;         Called from:     F000:8DDC, 8F8C, 9032, 9184, 91AE, 94BE, 959C
  3299.                 ;                  95DA, 97E1, AA4A, AB5C, AC83, ACC3, CB48
  3300.                 ;                  E9AB
  3301.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3302.   
  3303.                 sub_33        proc    near
  3304. F000:8E43            loc_255:                    ;  xref F000:90B1
  3305.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 57
  3306.  
  3307. F000:8E43  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  3308. F000:8E45  0C 0C                or    al,0Ch
  3309. F000:8E47  EB 00                jmp    short loc_256        ; (8E49)
  3310. F000:8E49            loc_256:                    ;  xref F000:8E47
  3311. F000:8E49  EB 00                jmp    short loc_257        ; (8E4B)
  3312. F000:8E4B            loc_257:                    ;  xref F000:8E49
  3313. F000:8E4B  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3314. F000:8E4D  24 F3                and    al,0F3h
  3315. F000:8E4F  EB 00                jmp    short loc_258        ; (8E51)
  3316. F000:8E51            loc_258:                    ;  xref F000:8E4F
  3317. F000:8E51  EB 00                jmp    short loc_259        ; (8E53)
  3318. F000:8E53            loc_259:                    ;  xref F000:8E51
  3319. F000:8E53  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  3320. F000:8E55  C3                    retn
  3321.                 sub_33        endp
  3322.   
  3323.   
  3324.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3325.                 ;                   SUBROUTINE
  3326.                 ;
  3327.                 ;         Called from:     F000:8E7F, 93EF
  3328.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3329.   
  3330.                 sub_34        proc    near
  3331. F000:8E56  E8 0065                call    sub_40            ; (8EBE)
  3332. F000:8E59  75 07                jnz    short loc_ret_260    ; Jump if not zero
  3333. F000:8E5B  E8 0035                call    sub_37            ; (8E93)
  3334. F000:8E5E  74 10                jz    short loc_262        ; Jump if zero
  3335. F000:8E60  3A C4                cmp    al,ah
  3336.   
  3337. F000:8E62            loc_ret_260:                    ;  xref F000:8E59
  3338. F000:8E62  C3                    retn
  3339.   
  3340.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3341.                 ;
  3342.                 ;         Called from:     F000:93AA
  3343.   
  3344.                 sub_35:
  3345. F000:8E63  E8 0067                call    sub_41            ; (8ECD)
  3346. F000:8E66  75 07                jnz    short loc_ret_261    ; Jump if not zero
  3347. F000:8E68  E8 0028                call    sub_37            ; (8E93)
  3348. F000:8E6B  74 03                jz    short loc_262        ; Jump if zero
  3349. F000:8E6D  3A C4                cmp    al,ah
  3350.   
  3351. F000:8E6F            loc_ret_261:                    ;  xref F000:8E66
  3352. F000:8E6F  C3                    retn
  3353. F000:8E70            loc_262:                    ;  xref F000:8E5E, 8E6B
  3354. F000:8E70  0B E4                or    sp,sp            ; Zero ?
  3355. F000:8E72  C3                    retn
  3356.                 sub_34        endp
  3357.   
  3358.   
  3359.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3360.                 ;                   SUBROUTINE
  3361.                 ;
  3362.                 ;         Called from:     F000:8DA1, 9147
  3363.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3364.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 58
  3365.  
  3366.   
  3367.                 sub_36        proc    near
  3368. F000:8E73  E4 64                in    al,64h            ; port 64h, keyboard status
  3369. F000:8E75  A8 01                test    al,1
  3370. F000:8E77  74 04                jz    short loc_264        ; Jump if zero
  3371. F000:8E79  EB 00                jmp    short loc_263        ; (8E7B)
  3372. F000:8E7B            loc_263:                    ;  xref F000:8E79
  3373. F000:8E7B  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  3374. F000:8E7D            loc_264:                    ;  xref F000:8E77
  3375. F000:8E7D  B0 C0                mov    al,0C0h
  3376. F000:8E7F  E8 FFD4                call    sub_34            ; (8E56)
  3377. F000:8E82  C3                    retn
  3378.                 sub_36        endp
  3379.   
  3380. F000:8E83  E4 64 A8 01 74 04            db    0E4h, 64h, 0A8h, 1, 74h, 4
  3381. F000:8E89  EB 00 E4 60 B0 D0            db    0EBh, 0, 0E4h, 60h, 0B0h, 0D0h
  3382. F000:8E8F  E8 C4 FF C3                db    0E8h, 0C4h, 0FFh, 0C3h
  3383.   
  3384.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3385.                 ;                   SUBROUTINE
  3386.                 ;
  3387.                 ;         Called from:     F000:8E5B, 8E68, 93B2
  3388.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3389.   
  3390.                 sub_37        proc    near
  3391. F000:8E93  E8 0003                call    sub_38            ; (8E99)
  3392. F000:8E96  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  3393. F000:8E98  C3                    retn
  3394.                 sub_37        endp
  3395.   
  3396.   
  3397.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3398.                 ;                   SUBROUTINE
  3399.                 ;
  3400.                 ;         Called from:     F000:8E93
  3401.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3402.   
  3403.                 sub_38        proc    near
  3404. F000:8E99  B9 003A                mov    cx,3Ah
  3405.   
  3406. F000:8E9C            locloop_265:                    ;  xref F000:8EA8
  3407. F000:8E9C  51                    push    cx
  3408. F000:8E9D  33 C9                xor    cx,cx            ; Zero register
  3409.   
  3410. F000:8E9F            locloop_266:                    ;  xref F000:8EA5
  3411. F000:8E9F  EB 00                jmp    short loc_267        ; (8EA1)
  3412. F000:8EA1            loc_267:                    ;  xref F000:8E9F
  3413. F000:8EA1  E4 64                in    al,64h            ; port 64h, keyboard status
  3414. F000:8EA3  A8 01                test    al,1
  3415. F000:8EA5  E1 F8                loopz    locloop_266        ; Loop if zf=1, cx>0
  3416.   
  3417. F000:8EA7  59                    pop    cx
  3418. F000:8EA8  E1 F2                loopz    locloop_265        ; Loop if zf=1, cx>0
  3419.   
  3420. F000:8EAA  C3                    retn
  3421.                 sub_38        endp
  3422.   
  3423.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 59
  3424.  
  3425.   
  3426.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3427.                 ;                   SUBROUTINE
  3428.                 ;
  3429.                 ;         Called from:     F000:8EDE
  3430.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3431.   
  3432.                 sub_39        proc    near
  3433. F000:8EAB  E8 0010                call    sub_40            ; (8EBE)
  3434. F000:8EAE  75 05                jnz    short loc_ret_268    ; Jump if not zero
  3435. F000:8EB0  8A C4                mov    al,ah
  3436. F000:8EB2  E8 0018                call    sub_41            ; (8ECD)
  3437.   
  3438. F000:8EB5            loc_ret_268:                    ;  xref F000:8EAE
  3439. F000:8EB5  C3                    retn
  3440.                 sub_39        endp
  3441.   
  3442. F000:8EB6  8A E0 B0 D1 E8 EE            db    8Ah, 0E0h, 0B0h, 0D1h, 0E8h, 0EEh
  3443. F000:8EBC  FF C3                db    0FFh, 0C3h
  3444.   
  3445.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3446.                 ;                   SUBROUTINE
  3447.                 ;
  3448.                 ;         Called from:     F000:8E56, 8EAB, AC64, ACC8
  3449.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3450.   
  3451.                 sub_40        proc    near
  3452. F000:8EBE  50                    push    ax
  3453. F000:8EBF  E8 0020                call    sub_43            ; (8EE2)
  3454. F000:8EC2  58                    pop    ax
  3455. F000:8EC3  75 07                jnz    short loc_ret_269    ; Jump if not zero
  3456. F000:8EC5  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  3457.                                         ;  al = 0C0h, read 8042 in port
  3458. F000:8EC7  50                    push    ax
  3459. F000:8EC8  E8 0017                call    sub_43            ; (8EE2)
  3460. F000:8ECB  58                    pop    ax
  3461.   
  3462. F000:8ECC            loc_ret_269:                    ;  xref F000:8EC3
  3463. F000:8ECC  C3                    retn
  3464.                 sub_40        endp
  3465.   
  3466.   
  3467.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3468.                 ;                   SUBROUTINE
  3469.                 ;
  3470.                 ;         Called from:     F000:8E63, 8EB2
  3471.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3472.   
  3473.                 sub_41        proc    near
  3474. F000:8ECD  50                    push    ax
  3475. F000:8ECE  E8 0011                call    sub_43            ; (8EE2)
  3476. F000:8ED1  58                    pop    ax
  3477. F000:8ED2  75 05                jnz    short loc_ret_270    ; Jump if not zero
  3478. F000:8ED4  E6 60                out    60h,al            ; port 60h, keybd data write
  3479. F000:8ED6  E8 0009                call    sub_43            ; (8EE2)
  3480.   
  3481. F000:8ED9            loc_ret_270:                    ;  xref F000:8ED2
  3482.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 60
  3483.  
  3484. F000:8ED9  C3                    retn
  3485.                 sub_41        endp
  3486.   
  3487.   
  3488.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3489.                 ;                   SUBROUTINE
  3490.                 ;
  3491.                 ;         Called from:     F000:93C9, 940E, 9416
  3492.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3493.   
  3494.                 sub_42        proc    near
  3495. F000:8EDA  8A E0                mov    ah,al
  3496. F000:8EDC  B0 60                mov    al,60h            ; '`'
  3497. F000:8EDE  E8 FFCA                call    sub_39            ; (8EAB)
  3498. F000:8EE1  C3                    retn
  3499.                 sub_42        endp
  3500.   
  3501.   
  3502.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3503.                 ;                   SUBROUTINE
  3504.                 ;
  3505.                 ;         Called from:     F000:8EBF, 8EC8, 8ECE, 8ED6, 8EF7, 8F00, 8F10
  3506.                 ;                  AC67, ACCB, E151
  3507.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3508.   
  3509.                 sub_43        proc    near
  3510. F000:8EE2            loc_271:                    ;  xref F000:81DF, 8209, 8241
  3511. F000:8EE2  33 C9                xor    cx,cx            ; Zero register
  3512.   
  3513. F000:8EE4            locloop_272:                    ;  xref F000:8EEA
  3514. F000:8EE4  EB 00                jmp    short loc_273        ; (8EE6)
  3515. F000:8EE6            loc_273:                    ;  xref F000:8EE4
  3516. F000:8EE6  E4 64                in    al,64h            ; port 64h, keyboard status
  3517. F000:8EE8  A8 02                test    al,2
  3518. F000:8EEA  E0 F8                loopnz    locloop_272        ; Loop if zf=0, cx>0
  3519.   
  3520. F000:8EEC  74 08                jz    short loc_ret_276    ; Jump if zero
  3521.   
  3522. F000:8EEE            locloop_274:                    ;  xref F000:8EF4
  3523. F000:8EEE  EB 00                jmp    short loc_275        ; (8EF0)
  3524. F000:8EF0            loc_275:                    ;  xref F000:8EEE
  3525. F000:8EF0  E4 64                in    al,64h            ; port 64h, keyboard status
  3526. F000:8EF2  A8 02                test    al,2
  3527. F000:8EF4  E0 F8                loopnz    locloop_274        ; Loop if zf=0, cx>0
  3528.   
  3529.   
  3530. F000:8EF6            loc_ret_276:                    ;  xref F000:8EEC
  3531. F000:8EF6  C3                    retn
  3532.                 sub_43        endp
  3533.   
  3534.   
  3535.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3536.                 ;                   SUBROUTINE
  3537.                 ;
  3538.                 ;         Called from:     F000:AB7A, CB9F
  3539.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3540.   
  3541.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 61
  3542.  
  3543.                 sub_44        proc    near
  3544. F000:8EF7  E8 FFE8                call    sub_43            ; (8EE2)
  3545. F000:8EFA  75 17                jnz    short loc_ret_277    ; Jump if not zero
  3546. F000:8EFC  B0 D1                mov    al,0D1h
  3547. F000:8EFE  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  3548.                                         ;  al = 0D1h, wrt 8042 out port
  3549. F000:8F00  E8 FFDF                call    sub_43            ; (8EE2)
  3550. F000:8F03  75 0E                jnz    short loc_ret_277    ; Jump if not zero
  3551. F000:8F05  B0 B7                mov    al,0B7h
  3552. F000:8F07  E8 5F7F                call    sub_255            ; (EE89)
  3553. F000:8F0A  24 0C                and    al,0Ch
  3554. F000:8F0C  0C D1                or    al,0D1h
  3555. F000:8F0E  E6 60                out    60h,al            ; port 60h, keybd data write
  3556. F000:8F10  E8 FFCF                call    sub_43            ; (8EE2)
  3557.   
  3558. F000:8F13            loc_ret_277:                    ;  xref F000:8EFA, 8F03
  3559. F000:8F13  C3                    retn
  3560.                 sub_44        endp
  3561.   
  3562.   
  3563.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3564.                 ;                   SUBROUTINE
  3565.                 ;
  3566.                 ;         Called from:     F000:AB77, CBA2
  3567.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3568.   
  3569.                 sub_45        proc    near
  3570. F000:8F14  B0 00                mov    al,0
  3571. F000:8F16  E6 92                out    92h,al            ; port 92h, system cntrl bits
  3572. F000:8F18  3B E4                cmp    sp,sp
  3573. F000:8F1A  C3                    retn
  3574.                 sub_45        endp
  3575.   
  3576. F000:8F1B  51 E8 C3 FF 75 17            db    51h, 0E8h, 0C3h, 0FFh, 75h, 17h
  3577. F000:8F21  B0 D1 E6 64 E8 BA            db    0B0h, 0D1h, 0E6h, 64h, 0E8h, 0BAh
  3578. F000:8F27  FF 75 0E B0 B7 E8            db    0FFh, 75h, 0Eh, 0B0h, 0B7h, 0E8h
  3579. F000:8F2D  5A 5F 24 0C 0C D3            db    5Ah, 5Fh, 24h, 0Ch, 0Ch, 0D3h
  3580. F000:8F33  E6 60 E8 AA FF            db    0E6h, 60h, 0E8h, 0AAh, 0FFh
  3581. F000:8F38            loc_278:
  3582. F000:8F38  59                    pop    cx
  3583. F000:8F39  C3                    retn
  3584.   
  3585.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3586.                 ;                   SUBROUTINE
  3587.                 ;
  3588.                 ;         Called from:     F000:CAB4
  3589.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3590.   
  3591.                 sub_46        proc    near
  3592. F000:8F3A  B0 02                mov    al,2
  3593. F000:8F3C  E6 92                out    92h,al            ; port 92h, system cntrl bits
  3594. F000:8F3E  3B E4                cmp    sp,sp
  3595. F000:8F40  C3                    retn
  3596.                 sub_46        endp
  3597.   
  3598.   
  3599.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3600.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 62
  3601.  
  3602.                 ;                   SUBROUTINE
  3603.                 ;
  3604.                 ;         Called from:     F000:9198, 95CD, 97F5
  3605.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3606.   
  3607.                 sub_47        proc    near
  3608. F000:8F41  FA                    cli                ; Disable interrupts
  3609. F000:8F42  FC                    cld                ; Clear direction
  3610. F000:8F43  1E                    push    ds
  3611. F000:8F44  8E DB                mov    ds,bx
  3612. F000:8F46  33 F6                xor    si,si            ; Zero register
  3613. F000:8F48  AD                    lodsw                ; String [si] to ax
  3614. F000:8F49  35 AA55                xor    ax,0AA55h
  3615. F000:8F4C  75 32                jnz    short loc_281        ; Jump if not zero
  3616. F000:8F4E  B9 0080                mov    cx,80h
  3617. F000:8F51  81 FB E000                cmp    bx,0E000h
  3618. F000:8F55  74 03                je    short loc_279        ; Jump if equal
  3619. F000:8F57  AC                    lodsb                ; String [si] to al
  3620. F000:8F58  8B C8                mov    cx,ax
  3621. F000:8F5A            loc_279:                    ;  xref F000:8F55
  3622. F000:8F5A  C1 E1 05                shl    cx,5            ; Shift w/zeros fill
  3623. F000:8F5D  03 D9                add    bx,cx
  3624. F000:8F5F  C1 E1 04                shl    cx,4            ; Shift w/zeros fill
  3625. F000:8F62  33 F6                xor    si,si            ; Zero register
  3626.   
  3627. F000:8F64            locloop_280:                    ;  xref F000:8F67
  3628. F000:8F64  AC                    lodsb                ; String [si] to al
  3629. F000:8F65  02 E0                add    ah,al
  3630. F000:8F67  E2 FB                loop    locloop_280        ; Loop if cx > 0
  3631.   
  3632. F000:8F69  75 19                jnz    short loc_282        ; Jump if not zero
  3633. F000:8F6B  FB                    sti                ; Enable interrupts
  3634. F000:8F6C  06                    push    es
  3635. F000:8F6D  53                    push    bx
  3636. F000:8F6E  55                    push    bp
  3637. F000:8F6F  0E                    push    cs
  3638. F000:8F70  68 8F77                push    8F77h
  3639. F000:8F73  1E                    push    ds
  3640. F000:8F74  6A 03                push    3
  3641. F000:8F76  CB                    retf                ; Return far
  3642. F000:8F77  FA FC 5D 5B 07 1F            db    0FAh, 0FCh, 5Dh, 5Bh, 7, 1Fh
  3643. F000:8F7D  3B E4 C3                db    3Bh, 0E4h, 0C3h
  3644. F000:8F80            loc_281:                    ;  xref F000:8F4C
  3645. F000:8F80  81 C3 0080                add    bx,80h
  3646. F000:8F84            loc_282:                    ;  xref F000:8F69
  3647. F000:8F84  1F                    pop    ds
  3648. F000:8F85  C3                    retn
  3649.                 sub_47        endp
  3650.   
  3651.   
  3652.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  3653.   
  3654. F000:8F86            loc_283:                    ;  xref F000:80FB, 8104
  3655. F000:8F86  BD 0007                mov    bp,7
  3656. F000:8F89  E9 FDCC                jmp    loc_218            ; (8D58)
  3657.   
  3658.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  3659.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 63
  3660.  
  3661.   
  3662. F000:8F8C            loc_284:                    ;  xref F000:80FB, 8108, 980A
  3663. F000:8F8C  E8 FEB4                call    sub_33            ; (8E43)
  3664. F000:8F8F  B0 0D                mov    al,0Dh
  3665. F000:8F91  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  3666.                                         ;  al = 0Dh, status register D
  3667. F000:8F93  CD 19                int    19h            ; Bootstrap loader
  3668. F000:8F95            loc_285:                    ;  xref F000:9009
  3669. F000:8F95  B0 AA                mov    al,0AAh
  3670. F000:8F97  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3671. F000:8F99            loc_286:                    ;  xref F000:8F9B
  3672. F000:8F99  FB                    sti                ; Enable interrupts
  3673. F000:8F9A  F4                    hlt                ; Halt processor
  3674. F000:8F9B  EB FC                jmp    short loc_286        ; (8F99)
  3675.   
  3676.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  3677.   
  3678. F000:8F9D            loc_287:                    ;  xref F000:80FB, 810A
  3679. F000:8F9D  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  3680. F000:8F9F  B0 20                mov    al,20h            ; ' '
  3681. F000:8FA1  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  3682.                                         ;  al = 20h, end of interrupt
  3683. F000:8FA3  FF 2E 0067                jmp    dword ptr @gen_io_ptr    ; (0040:0067=522h)
  3684. F000:8FA7            loc_288:                    ;  xref F000:E005
  3685. F000:8FA7  FA                    cli                ; Disable interrupts
  3686. F000:8FA8  8B EC                mov    bp,sp
  3687. F000:8FAA  8C C8                mov    ax,cs
  3688. F000:8FAC  3B 46 02                cmp    ax,[bp+2]
  3689. F000:8FAF  75 0D                jne    short loc_289        ; Jump if not equal
  3690. F000:8FB1  B8 9009                mov    ax,9009h
  3691. F000:8FB4  3B 46 00                cmp    ax,[bp]
  3692. F000:8FB7  75 05                jne    short loc_289        ; Jump if not equal
  3693. F000:8FB9  83 C4 06                add    sp,6
  3694. F000:8FBC  EB 4D                jmp    short loc_292        ; (900B)
  3695. F000:8FBE            loc_289:                    ;  xref F000:8FAF, 8FB7
  3696. F000:8FBE  BE 7D8E                mov    si,7D8Eh
  3697. F000:8FC1  E9 FDD0                jmp    loc_229            ; (8D94)
  3698.   
  3699.   
  3700.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 19h ▒▒▒▒▒
  3701.                 ;
  3702.                 ;   BOOTSTRAP LOADER
  3703.                 ;
  3704.                 ;      Floppy drive a: attempts a read from the first sector of    the disk.
  3705.                 ;      If read properly    (i.e a boot disk is in drive a:), control is
  3706.                 ;      transferred to the loaded program.  The boot sector at track 0,
  3707.                 ;      sector 1    is transfered to memory at 0:7C00h.  dh = drive    which
  3708.                 ;      was used    (0=A:).     Control is passed to 0:7C00h.
  3709.   
  3710. F000:8FC4            int_19h_bootup    proc    near            ;  xref F000:9021, E6F2
  3711. F000:8FC4  33 C0                xor    ax,ax            ; Zero register
  3712. F000:8FC6  8E C0                mov    es,ax
  3713. F000:8FC8  B8 EFC7                mov    ax,0EFC7h
  3714. F000:8FCB  BF 0078                mov    di,78h
  3715. F000:8FCE  FA                    cli                ; Disable interrupts
  3716. F000:8FCF  FC                    cld                ; Clear direction
  3717. F000:8FD0  AB                    stosw                ; Store ax to es:[di]
  3718.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 64
  3719.  
  3720. F000:8FD1  8C C8                mov    ax,cs
  3721. F000:8FD3  AB                    stosw                ; Store ax to es:[di]
  3722. F000:8FD4  BB 7C00                mov    bx,7C00h
  3723. F000:8FD7  8B FB                mov    di,bx
  3724. F000:8FD9  B9 0100                mov    cx,100h
  3725. F000:8FDC  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  3726. F000:8FDE  FB                    sti                ; Enable interrupts
  3727. F000:8FDF  33 D2                xor    dx,dx            ; Zero register
  3728. F000:8FE1  33 C0                xor    ax,ax            ; Zero register
  3729. F000:8FE3  CD 13                int    13h            ; Disk  dl=drive #: ah=func a0h
  3730.                                         ;  reset disk, al=return status
  3731. F000:8FE5  E8 0061                call    sub_48            ; (9049)
  3732. F000:8FE8  BE 7D9B                mov    si,7D9Bh
  3733. F000:8FEB  E3 08                jcxz    short loc_290        ; Jump if cx=0
  3734. F000:8FED  BE 7DB3                mov    si,7DB3h
  3735. F000:8FF0  73 31                jnc    short loc_293        ; Jump if carry=0
  3736. F000:8FF2  BE 7DCB                mov    si,7DCBh
  3737. F000:8FF5            loc_290:                    ;  xref F000:8FEB
  3738. F000:8FF5  B0 0E                mov    al,0Eh
  3739. F000:8FF7  E8 5EA5                call    sub_257            ; (EE9F)
  3740. F000:8FFA  A8 08                test    al,8
  3741. F000:8FFC  75 09                jnz    short loc_291        ; Jump if not zero
  3742. F000:8FFE  B2 80                mov    dl,80h
  3743. F000:9000  E8 0046                call    sub_48            ; (9049)
  3744. F000:9003  E3 02                jcxz    short loc_291        ; Jump if cx=0
  3745. F000:9005  73 37                jnc    short loc_295        ; Jump if carry=0
  3746. F000:9007            loc_291:                    ;  xref F000:8FFC, 9003, 9030, 9047
  3747. F000:9007  CD 18                int    18h            ; ROM basic
  3748. F000:9009  EB 8A                jmp    short loc_285        ; (8F95)
  3749. F000:900B            loc_292:                    ;  xref F000:8FBC
  3750. F000:900B  E8 FDB9                call    sub_28            ; (8DC7)
  3751. F000:900E  E8 FDA8                call    sub_27            ; (8DB9)
  3752. F000:9011  E8 FDB3                call    sub_28            ; (8DC7)
  3753. F000:9014  BE 7DE3                mov    si,7DE3h
  3754. F000:9017  E8 FD9F                call    sub_27            ; (8DB9)
  3755. F000:901A  B4 00                mov    ah,0
  3756. F000:901C  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  3757.                                         ;  get keybd char in al, ah=scan
  3758. F000:901E  E8 FDA6                call    sub_28            ; (8DC7)
  3759. F000:9021  EB A1                jmp    short int_19h_bootup    ; (8FC4)
  3760. F000:9023            loc_293:                    ;  xref F000:8FF0
  3761. F000:9023  8B FB                mov    di,bx
  3762. F000:9025  26: 8B 05                mov    ax,es:[di]
  3763. F000:9028  B9 0080                mov    cx,80h
  3764. F000:902B  FA                    cli                ; Disable interrupts
  3765. F000:902C  FC                    cld                ; Clear direction
  3766. F000:902D  F3/ AE                repe    scasb            ; Rep zf=1+cx >0 Scan es:[di] for al
  3767. F000:902F  FB                    sti                ; Enable interrupts
  3768. F000:9030  E3 D5                jcxz    loc_291            ; Jump if cx=0
  3769. F000:9032            loc_294:                    ;  xref F000:9045
  3770. F000:9032  E8 FE0E                call    sub_33            ; (8E43)
  3771. F000:9035  B0 0D                mov    al,0Dh
  3772. F000:9037  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  3773.                                         ;  al = 0Dh, status register D
  3774. F000:9039  EA 00007C00        ;*        jmp    far ptr loc_1        ;*(0000:7C00)
  3775. F000:9039  EA 00 7C 00 00            db    0EAh, 0, 7Ch, 0, 0
  3776. F000:903E            loc_295:                    ;  xref F000:9005
  3777.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 65
  3778.  
  3779. F000:903E  26: 81 BF 01FE AA55            cmp    word ptr es:data_8e[bx],0AA55h    ; (0000:01FE=0)
  3780. F000:9045  74 EB                je    loc_294            ; Jump if equal
  3781. F000:9047  EB BE                jmp    short loc_291        ; (9007)
  3782.                 int_19h_bootup    endp
  3783.   
  3784.   
  3785.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3786.                 ;                   SUBROUTINE
  3787.                 ;
  3788.                 ;         Called from:     F000:8FE5, 9000
  3789.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3790.   
  3791.                 sub_48        proc    near
  3792. F000:9049  B9 0004                mov    cx,4
  3793.   
  3794. F000:904C            locloop_296:                    ;  xref F000:9062
  3795. F000:904C  51                    push    cx
  3796. F000:904D  B9 0001                mov    cx,1
  3797. F000:9050  B8 0201                mov    ax,201h
  3798. F000:9053  CD 13                int    13h            ; Disk  dl=drive #: ah=func a2h
  3799.                                         ;  read sectors to memory es:bx
  3800. F000:9055  59                    pop    cx
  3801. F000:9056  73 0C                jnc    short loc_ret_297    ; Jump if carry=0
  3802. F000:9058  50                    push    ax
  3803. F000:9059  33 C0                xor    ax,ax            ; Zero register
  3804. F000:905B  CD 13                int    13h            ; Disk  dl=drive #: ah=func a0h
  3805.                                         ;  reset disk, al=return status
  3806. F000:905D  58                    pop    ax
  3807. F000:905E  D0 E4                shl    ah,1            ; Shift w/zeros fill
  3808. F000:9060  72 02                jc    short loc_ret_297    ; Jump if carry Set
  3809. F000:9062  E2 E8                loop    locloop_296        ; Loop if cx > 0
  3810.   
  3811.   
  3812. F000:9064            loc_ret_297:                    ;  xref F000:9056, 9060
  3813. F000:9064  C3                    retn
  3814.                 sub_48        endp
  3815.   
  3816. F000:9065  00 B0 10 E6 80 BC            db    0, 0B0h, 10h, 0E6h, 80h, 0BCh
  3817. F000:906B  70 90 E9 D3 FD 72            db    70h, 90h, 0E9h, 0D3h, 0FDh, 72h
  3818. F000:9071  90 33 FF BE 01 00            db    90h, 33h, 0FFh, 0BEh, 1, 0
  3819. F000:9077            loc_298:                    ;  xref F000:90A8
  3820. F000:9077  B0 FF                mov    al,0FFh
  3821. F000:9079  8B DF                mov    bx,di
  3822. F000:907B  89 05                mov    [di],ax
  3823. F000:907D  89 45 02                mov    [di+2],ax
  3824. F000:9080            loc_299:                    ;  xref F000:908A
  3825. F000:9080  32 05                xor    al,[di]
  3826. F000:9082  75 12                jnz    short loc_300        ; Jump if not zero
  3827. F000:9084  0B FF                or    di,di            ; Zero ?
  3828. F000:9086  74 14                jz    short loc_301        ; Jump if zero
  3829. F000:9088  D1 EF                shr    di,1            ; Shift w/zeros fill
  3830. F000:908A  EB F4                jmp    short loc_299        ; (9080)
  3831. F000:908C  BC 92 90 E9 05 1D            db    0BCh, 92h, 90h, 0E9h, 5, 1Dh
  3832. F000:9092  94 90                db    94h, 90h
  3833. F000:9094  74 50                db    74h, 50h
  3834. F000:9096            loc_300:                    ;  xref F000:9082, 90A0
  3835. F000:9096  BD 0003                mov    bp,3
  3836.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 66
  3837.  
  3838. F000:9099  E9 FCBC                jmp    loc_218            ; (8D58)
  3839. F000:909C            loc_301:                    ;  xref F000:9086
  3840. F000:909C  88 07                mov    [bx],al
  3841. F000:909E  32 07                xor    al,[bx]
  3842. F000:90A0  75 F4                jnz    loc_300            ; Jump if not zero
  3843. F000:90A2  8B FE                mov    di,si
  3844. F000:90A4  D1 E6                shl    si,1            ; Shift w/zeros fill
  3845. F000:90A6  0B FF                or    di,di            ; Zero ?
  3846. F000:90A8  75 CD                jnz    loc_298            ; Jump if not zero
  3847. F000:90AA  B0 11                mov    al,11h
  3848. F000:90AC  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3849. F000:90AE  BC 90B4                mov    sp,90B4h
  3850. F000:90B1  E9 FD8F                jmp    loc_255            ; (8E43)
  3851. F000:90B4  B6 90 0B ED 78 D2            db    0B6h, 90h, 0Bh, 0EDh, 78h, 0D2h
  3852. F000:90BA  BC C0 90 E9 E1 1C            db    0BCh, 0C0h, 90h, 0E9h, 0E1h, 1Ch
  3853. F000:90C0  C2 90 75 D2 49 4F            db    0C2h, 90h, 75h, 0D2h, 49h, 4Fh
  3854. F000:90C6  BC CC 90 E9 77 1B            db    0BCh, 0CCh, 90h, 0E9h, 77h, 1Bh
  3855. F000:90CC  CE 90 88 05 E2 F4            db    0CEh, 90h, 88h, 5, 0E2h, 0F4h
  3856. F000:90D2  49 90 BC DA 90 E9            db    49h, 90h, 0BCh, 0DAh, 90h, 0E9h
  3857. F000:90D8  69 1B DC 90 30 05            db    69h, 1Bh, 0DCh, 90h, 30h, 5
  3858. F000:90DE  E1 F3 75 B4 30 24            db    0E1h, 0F3h, 75h, 0B4h, 30h, 24h
  3859. F000:90E4  75 B0 E4 61 A8 80            db    75h, 0B0h, 0E4h, 61h, 0A8h, 80h
  3860. F000:90EA  B0 12 E6 80 33 C0            db    0B0h, 12h, 0E6h, 80h, 33h, 0C0h
  3861. F000:90F0  8E C0 B0 40 8E D8            db    8Eh, 0C0h, 0B0h, 40h, 8Eh, 0D8h
  3862. F000:90F6  B0 30 8E D0 BC 00            db    0B0h, 30h, 8Eh, 0D0h, 0BCh, 0
  3863. F000:90FC  01 B9 78 00 B8 7D            db    1, 0B9h, 78h, 0, 0B8h, 7Dh
  3864. F000:9102  EA 8C CB 33 FF            db    0EAh, 8Ch, 0CBh, 33h, 0FFh
  3865.   
  3866. F000:9107            locloop_302:                    ;  xref F000:910B
  3867. F000:9107  AB                    stosw                ; Store ax to es:[di]
  3868. F000:9108  93                    xchg    ax,bx
  3869. F000:9109  AB                    stosw                ; Store ax to es:[di]
  3870. F000:910A  93                    xchg    ax,bx
  3871. F000:910B  E2 FA                loop    locloop_302        ; Loop if cx > 0
  3872.   
  3873. F000:910D  26: C7 06 007E 0000            mov    word ptr es:graph_tbl_seg,0    ; (0000:007E=0C80Eh)
  3874. F000:9114  BF 0180                mov    di,180h
  3875. F000:9117  B9 000E                mov    cx,0Eh
  3876. F000:911A  33 C0                xor    ax,ax            ; Zero register
  3877. F000:911C  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  3878. F000:911E  33 FF                xor    di,di            ; Zero register
  3879. F000:9120  BE FEE3                mov    si,0FEE3h
  3880. F000:9123  B9 0020                mov    cx,20h
  3881.   
  3882. F000:9126            locloop_303:                    ;  xref F000:912A
  3883. F000:9126  2E: A5                movs word ptr es:[di],word ptr cs:[si]    ; Mov [si] to es:[di]
  3884. F000:9128  47                    inc    di
  3885. F000:9129  47                    inc    di
  3886. F000:912A  E2 FA                loop    locloop_303        ; Loop if cx > 0
  3887.   
  3888. F000:912C  BF 01C0                mov    di,1C0h
  3889. F000:912F  B9 0008                mov    cx,8
  3890.   
  3891. F000:9132            locloop_304:                    ;  xref F000:9136
  3892. F000:9132  2E: A5                movs word ptr es:[di],word ptr cs:[si]    ; Mov [si] to es:[di]
  3893. F000:9134  47                    inc    di
  3894. F000:9135  47                    inc    di
  3895.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 67
  3896.  
  3897. F000:9136  E2 FA                loop    locloop_304        ; Loop if cx > 0
  3898.   
  3899. F000:9138  2E: F6 06 E2C0 40            test    byte ptr cs:data_158,40h    ; (F000:E2C0=0BFh) '@'
  3900. F000:913E  74 07                jz    short loc_305        ; Jump if zero
  3901. F000:9140  BF 01D0                mov    di,1D0h
  3902. F000:9143  B8 7976                mov    ax,7976h
  3903. F000:9146  AB                    stosw                ; Store ax to es:[di]
  3904. F000:9147            loc_305:                    ;  xref F000:913E
  3905. F000:9147  E8 FD29                call    sub_36            ; (8E73)
  3906. F000:914A  A2 0012                mov    init_test_flag,al    ; (0040:0012=0BFh)
  3907. F000:914D  A8 20                test    al,20h            ; ' '
  3908. F000:914F  75 0E                jnz    short loc_306        ; Jump if not zero
  3909. F000:9151  BF 0020                mov    di,20h
  3910. F000:9154  B8 FEB4                mov    ax,0FEB4h
  3911. F000:9157  AB                    stosw                ; Store ax to es:[di]
  3912. F000:9158  8C C8                mov    ax,cs
  3913. F000:915A  AB                    stosw                ; Store ax to es:[di]
  3914. F000:915B  B0 FE                mov    al,0FEh
  3915. F000:915D  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  3916.                                         ;  al = 0FEh, IRQ0 (timer) only
  3917. F000:915F            loc_306:                    ;  xref F000:914F
  3918. F000:915F  B0 15                mov    al,15h
  3919. F000:9161  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3920. F000:9163  C6 06 0084 18            mov    video_rows,18h        ; (0040:0084=18h)
  3921. F000:9168  80 0E 0010 31            or    byte ptr equip_bits,31h    ; (0040:0010=61h) '1'
  3922. F000:916D  B8 0007                mov    ax,7
  3923. F000:9170  CD 10                int    10h            ; Video display   ah=functn 00h
  3924.                                         ;  set display mode in al
  3925. F000:9172  B0 17                mov    al,17h
  3926. F000:9174  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3927. F000:9176  80 26 0010 CF            and    byte ptr equip_bits,0CFh    ; (0040:0010=61h)
  3928. F000:917B  B8 0001                mov    ax,1
  3929. F000:917E  CD 10                int    10h            ; Video display   ah=functn 00h
  3930.                                         ;  set display mode in al
  3931. F000:9180  B0 18                mov    al,18h
  3932. F000:9182  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3933. F000:9184  E8 FCBC                call    sub_33            ; (8E43)
  3934. F000:9187  B0 19                mov    al,19h
  3935. F000:9189  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3936. F000:918B  BB C000                mov    bx,0C000h
  3937. F000:918E  0B ED                or    bp,bp            ; Zero ?
  3938. F000:9190  79 06                jns    short loc_307        ; Jump if not sign
  3939. F000:9192  C7 06 0072 1234            mov    warm_boot_flag,1234h    ; (0040:0072=1200h)
  3940. F000:9198            loc_307:                    ;  xref F000:9190, 919F
  3941. F000:9198  E8 FDA6                call    sub_47            ; (8F41)
  3942. F000:919B  81 FB C800                cmp    bx,0C800h
  3943. F000:919F  72 F7                jb    loc_307            ; Jump if below
  3944. F000:91A1  FA                    cli                ; Disable interrupts
  3945. F000:91A2  FC                    cld                ; Clear direction
  3946. F000:91A3  B0 1A                mov    al,1Ah
  3947. F000:91A5  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3948. F000:91A7  E8 3BF9                call    sub_209            ; (CDA3)
  3949. F000:91AA  B0 8D                mov    al,8Dh
  3950. F000:91AC  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  3951. F000:91AE  E8 FC92                call    sub_33            ; (8E43)
  3952. F000:91B1  BB 0042                mov    bx,42h
  3953. F000:91B4  8C C9                mov    cx,cs
  3954.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 68
  3955.  
  3956. F000:91B6  26: 39 0F                cmp    es:[bx],cx
  3957. F000:91B9  74 1D                je    short loc_309        ; Jump if equal
  3958. F000:91BB  B0 94                mov    al,94h
  3959. F000:91BD  E8 5CDF                call    sub_257            ; (EE9F)
  3960. F000:91C0  A8 30                test    al,30h            ; '0'
  3961. F000:91C2  74 11                jz    short loc_308        ; Jump if zero
  3962. F000:91C4  81 CD 0400                or    bp,400h
  3963. F000:91C8  B8 8E8E                mov    ax,8E8Eh
  3964. F000:91CB  E8 5CD1                call    sub_257            ; (EE9F)
  3965. F000:91CE  0C 20                or    al,20h            ; ' '
  3966. F000:91D0  86 C4                xchg    al,ah
  3967. F000:91D2  E8 5CD9                call    sub_258            ; (EEAE)
  3968. F000:91D5            loc_308:                    ;  xref F000:91C2
  3969. F000:91D5  E9 0103                jmp    loc_321            ; (92DB)
  3970. F000:91D8            loc_309:                    ;  xref F000:91B9
  3971. F000:91D8  A0 0012                mov    al,ds:data_31e        ; (C000:0012=45h)
  3972. F000:91DB  24 40                and    al,40h            ; '@'
  3973. F000:91DD  BB B800                mov    bx,0B800h
  3974. F000:91E0  74 04                jz    short loc_310        ; Jump if zero
  3975. F000:91E2  B0 30                mov    al,30h            ; '0'
  3976. F000:91E4  B7 B0                mov    bh,0B0h
  3977. F000:91E6            loc_310:                    ;  xref F000:91E0
  3978. F000:91E6  08 06 0010                or    ds:data_29e,al        ; (C000:0010=20h)
  3979. F000:91EA  E8 0171                call    sub_51            ; (935E)
  3980. F000:91ED  75 17                jnz    short loc_311        ; Jump if not zero
  3981. F000:91EF  B0 1B                mov    al,1Bh
  3982. F000:91F1  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  3983. F000:91F3  B4 08                mov    ah,8
  3984. F000:91F5  80 C2 02                add    dl,2
  3985. F000:91F8  E8 FC33                call    sub_32            ; (8E2E)
  3986. F000:91FB  E3 09                jcxz    short loc_311        ; Jump if cx=0
  3987. F000:91FD  B4 01                mov    ah,1
  3988. F000:91FF  E8 FC2C                call    sub_32            ; (8E2E)
  3989. F000:9202  E3 02                jcxz    short loc_311        ; Jump if cx=0
  3990. F000:9204  EB 4E                jmp    short loc_314        ; (9254)
  3991. F000:9206            loc_311:                    ;  xref F000:91ED, 91FB, 9202
  3992. F000:9206  80 36 0010 30            xor    byte ptr ds:data_29e,30h    ; (C000:0010=20h) '0'
  3993. F000:920B  A0 0010                mov    al,ds:data_29e        ; (C000:0010=20h)
  3994. F000:920E  24 30                and    al,30h            ; '0'
  3995. F000:9210  B7 B8                mov    bh,0B8h
  3996. F000:9212  74 02                jz    short loc_312        ; Jump if zero
  3997. F000:9214  B7 B0                mov    bh,0B0h
  3998. F000:9216            loc_312:                    ;  xref F000:9212
  3999. F000:9216  E8 0145                call    sub_51            ; (935E)
  4000. F000:9219  75 17                jnz    short loc_313        ; Jump if not zero
  4001. F000:921B  B0 1C                mov    al,1Ch
  4002. F000:921D  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4003. F000:921F  B4 08                mov    ah,8
  4004. F000:9221  80 C2 02                add    dl,2
  4005. F000:9224  E8 FC07                call    sub_32            ; (8E2E)
  4006. F000:9227  E3 09                jcxz    short loc_313        ; Jump if cx=0
  4007. F000:9229  B4 01                mov    ah,1
  4008. F000:922B  E8 FC00                call    sub_32            ; (8E2E)
  4009. F000:922E  E3 02                jcxz    short loc_313        ; Jump if cx=0
  4010. F000:9230  EB 22                jmp    short loc_314        ; (9254)
  4011. F000:9232            loc_313:                    ;  xref F000:9219, 9227, 922E
  4012. F000:9232  80 0E 0010 30            or    byte ptr ds:data_29e,30h    ; (C000:0010=20h) '0'
  4013.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 69
  4014.  
  4015. F000:9237  A0 0012                mov    al,ds:data_31e        ; (C000:0012=45h)
  4016. F000:923A  A8 20                test    al,20h            ; ' '
  4017. F000:923C  74 16                jz    short loc_314        ; Jump if zero
  4018. F000:923E  BB 0008                mov    bx,8
  4019. F000:9241  B8 02B7                mov    ax,2B7h
  4020. F000:9244  E8 00ED                call    sub_49            ; (9334)
  4021. F000:9247  74 0B                jz    short loc_314        ; Jump if zero
  4022. F000:9249  2E: F6 06 E2C0 08            test    byte ptr cs:data_158,8    ; (F000:E2C0=0BFh)
  4023. F000:924F  74 03                jz    short loc_314        ; Jump if zero
  4024. F000:9251  E8 00F1                call    sub_50            ; (9345)
  4025. F000:9254            loc_314:                    ;  xref F000:9204, 9230, 923C, 9247
  4026.                                         ;            924F
  4027. F000:9254  B0 1D                mov    al,1Dh
  4028. F000:9256  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4029. F000:9258  B8 8E8E                mov    ax,8E8Eh
  4030. F000:925B  E8 5C41                call    sub_257            ; (EE9F)
  4031. F000:925E  50                    push    ax
  4032. F000:925F  8A 26 0012                mov    ah,ds:data_31e        ; (C000:0012=45h)
  4033. F000:9263  A0 0010                mov    al,ds:data_29e        ; (C000:0010=20h)
  4034. F000:9266  24 30                and    al,30h            ; '0'
  4035. F000:9268  3C 30                cmp    al,30h            ; '0'
  4036. F000:926A  8A C8                mov    cl,al
  4037. F000:926C  C0 C4 02                rol    ah,2            ; Rotate
  4038. F000:926F  74 01                jz    short loc_315        ; Jump if zero
  4039. F000:9271  F5                    cmc                ; Complement carry
  4040. F000:9272            loc_315:                    ;  xref F000:926F
  4041. F000:9272  72 04                jc    short loc_316        ; Jump if carry Set
  4042. F000:9274  81 CD 0800                or    bp,800h
  4043. F000:9278            loc_316:                    ;  xref F000:9272
  4044. F000:9278  B0 94                mov    al,94h
  4045. F000:927A  E8 5C22                call    sub_257            ; (EE9F)
  4046. F000:927D  24 30                and    al,30h            ; '0'
  4047. F000:927F  74 10                jz    short loc_318        ; Jump if zero
  4048. F000:9281  3C 30                cmp    al,30h            ; '0'
  4049. F000:9283  74 07                je    short loc_317        ; Jump if equal
  4050. F000:9285  80 F9 30                cmp    cl,30h            ; '0'
  4051. F000:9288  75 0F                jne    short loc_319        ; Jump if not equal
  4052. F000:928A  EB 05                jmp    short loc_318        ; (9291)
  4053. F000:928C            loc_317:                    ;  xref F000:9283
  4054. F000:928C  80 F9 30                cmp    cl,30h            ; '0'
  4055. F000:928F  74 08                je    short loc_319        ; Jump if equal
  4056. F000:9291            loc_318:                    ;  xref F000:927F, 928A
  4057. F000:9291  81 CD 0400                or    bp,400h
  4058. F000:9295  58                    pop    ax
  4059. F000:9296  0C 20                or    al,20h            ; ' '
  4060. F000:9298  50                    push    ax
  4061. F000:9299            loc_319:                    ;  xref F000:9288, 928F
  4062. F000:9299  58                    pop    ax
  4063. F000:929A  86 C4                xchg    al,ah
  4064. F000:929C  E8 5C0F                call    sub_258            ; (EEAE)
  4065. F000:929F  B0 1E                mov    al,1Eh
  4066. F000:92A1  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4067. F000:92A3  A0 0010                mov    al,ds:data_29e        ; (C000:0010=20h)
  4068. F000:92A6  24 30                and    al,30h            ; '0'
  4069. F000:92A8  3C 30                cmp    al,30h            ; '0'
  4070. F000:92AA  B4 07                mov    ah,7
  4071. F000:92AC  74 1A                jz    short loc_320        ; Jump if zero
  4072.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 70
  4073.  
  4074. F000:92AE  B0 8E                mov    al,8Eh
  4075. F000:92B0  E8 5BEC                call    sub_257            ; (EE9F)
  4076. F000:92B3  A8 E0                test    al,0E0h
  4077. F000:92B5  B8 0320                mov    ax,320h
  4078. F000:92B8  75 0E                jnz    short loc_320        ; Jump if not zero
  4079. F000:92BA  B0 94                mov    al,94h
  4080. F000:92BC  E8 5BE0                call    sub_257            ; (EE9F)
  4081. F000:92BF  24 30                and    al,30h            ; '0'
  4082. F000:92C1  3C 20                cmp    al,20h            ; ' '
  4083. F000:92C3  74 03                je    short loc_320        ; Jump if equal
  4084. F000:92C5  B8 0110                mov    ax,110h
  4085. F000:92C8            loc_320:                    ;  xref F000:92AC, 92B8, 92C3
  4086. F000:92C8  80 26 0010 CF            and    byte ptr ds:data_29e,0CFh    ; (C000:0010=20h)
  4087. F000:92CD  08 06 0010                or    ds:data_29e,al        ; (C000:0010=20h)
  4088. F000:92D1  32 C0                xor    al,al            ; Zero register
  4089. F000:92D3  86 C4                xchg    al,ah
  4090. F000:92D5  CD 10                int    10h            ; Video display   ah=functn 00h
  4091.                                         ;  set display mode in al
  4092. F000:92D7  B0 1F                mov    al,1Fh
  4093. F000:92D9  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4094. F000:92DB            loc_321:                    ;  xref F000:91D5
  4095. F000:92DB  B0 20                mov    al,20h            ; ' '
  4096. F000:92DD  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4097. F000:92DF  E8 34BE                call    sub_196            ; (C7A0)
  4098. F000:92E2  75 4A                jnz    short loc_323        ; Jump if not zero
  4099. F000:92E4  E8 E3D4                call    $-1C29h
  4100. F000:92E7  F7 C5 4000                test    bp,4000h
  4101. F000:92EB  75 3B                jnz    short loc_322        ; Jump if not zero
  4102. F000:92ED  B4 03                mov    ah,3
  4103. F000:92EF  32 FF                xor    bh,bh            ; Zero register
  4104. F000:92F1  E8 E301                call    $-1CFCh
  4105. F000:92F4  B0 21                mov    al,21h            ; '!'
  4106. F000:92F6  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4107. F000:92F8  FE C6                inc    dh
  4108. F000:92FA  B2 00                mov    dl,0
  4109. F000:92FC  B4 02                mov    ah,2
  4110. F000:92FE  E8 E2F4                call    $-1D09h
  4111. F000:9301  B0 22                mov    al,22h            ; '"'
  4112. F000:9303  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4113. F000:9305  E8 5D3A                call    sub_263            ; (F042)
  4114. F000:9308  B0 23                mov    al,23h            ; '#'
  4115. F000:930A  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4116. F000:930C  B4 03                mov    ah,3
  4117. F000:930E  E8 E2E4                call    $-1D19h
  4118. F000:9311  B0 24                mov    al,24h            ; '$'
  4119. F000:9313  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4120. F000:9315  80 C6 02                add    dh,2
  4121. F000:9318  B2 00                mov    dl,0
  4122. F000:931A  89 16 0069                mov    ds:data_43e,dx        ; (C000:0069=4E45h)
  4123. F000:931E  E8 E3AF                call    $-1C4Eh
  4124. F000:9321  B0 25                mov    al,25h            ; '%'
  4125. F000:9323  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4126. F000:9325  E9 16C8                jmp    loc_642            ; (A9F0)
  4127. F000:9328            loc_322:                    ;  xref F000:92EB
  4128. F000:9328  BE 7D0F                mov    si,7D0Fh
  4129. F000:932B  E9 FA66                jmp    loc_229            ; (8D94)
  4130. F000:932E            loc_323:                    ;  xref F000:92E2
  4131.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 71
  4132.  
  4133. F000:932E  BE D7D6                mov    si,0D7D6h
  4134. F000:9331  E9 FA60                jmp    loc_229            ; (8D94)
  4135.   
  4136.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4137.                 ;                   SUBROUTINE
  4138.                 ;
  4139.                 ;         Called from:     F000:9244, 93DF, 946D, 9709
  4140.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4141.   
  4142.                 sub_49        proc    near
  4143. F000:9334  50                    push    ax
  4144. F000:9335  B0 8E                mov    al,8Eh
  4145. F000:9337  E8 5B65                call    sub_257            ; (EE9F)
  4146. F000:933A  A8 C0                test    al,0C0h
  4147. F000:933C  58                    pop    ax
  4148. F000:933D  75 05                jnz    short loc_ret_324    ; Jump if not zero
  4149. F000:933F  E8 5B5D                call    sub_257            ; (EE9F)
  4150. F000:9342  84 C4                test    al,ah
  4151.   
  4152. F000:9344            loc_ret_324:                    ;  xref F000:933D
  4153. F000:9344  C3                    retn
  4154.                 sub_49        endp
  4155.   
  4156.   
  4157.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4158.                 ;                   SUBROUTINE
  4159.                 ;
  4160.                 ;         Called from:     F000:9251, ACEA
  4161.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4162.   
  4163.                 sub_50        proc    near
  4164. F000:9345  E8 FA98                call    sub_30            ; (8DE0)
  4165. F000:9348  E8 FA95                call    sub_30            ; (8DE0)
  4166. F000:934B  B9 FFF0                mov    cx,0FFF0h
  4167. F000:934E  E8 5D17                call    sub_264            ; (F068)
  4168. F000:9351            loc_325:                    ;  xref F000:935B
  4169. F000:9351  E8 FAB3                call    sub_31            ; (8E07)
  4170. F000:9354  B9 8000                mov    cx,8000h
  4171. F000:9357  E8 5D0E                call    sub_264            ; (F068)
  4172. F000:935A  4B                    dec    bx
  4173. F000:935B  75 F4                jnz    loc_325            ; Jump if not zero
  4174. F000:935D  C3                    retn
  4175.                 sub_50        endp
  4176.   
  4177.   
  4178.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4179.                 ;                   SUBROUTINE
  4180.                 ;
  4181.                 ;         Called from:     F000:91EA, 9216
  4182.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4183.   
  4184.                 sub_51        proc    near
  4185. F000:935E  33 C0                xor    ax,ax            ; Zero register
  4186. F000:9360  CD 10                int    10h            ; Video display   ah=functn 00h
  4187.                                         ;  set display mode in al
  4188. F000:9362  8B 16 0063                mov    dx,ds:data_40e        ; (C000:0063=2030h)
  4189. F000:9366  80 C2 04                add    dl,4
  4190.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 72
  4191.  
  4192. F000:9369  A0 0065                mov    al,ds:data_41e        ; (C000:0065=54h)
  4193. F000:936C  24 37                and    al,37h            ; '7'
  4194. F000:936E  EE                    out    dx,al            ; port 2034h
  4195. F000:936F  06                    push    es
  4196. F000:9370  51                    push    cx
  4197. F000:9371  8E C3                mov    es,bx
  4198. F000:9373  B7 08                mov    bh,8
  4199. F000:9375  E8 1A2C                call    sub_133            ; (ADA4)
  4200. F000:9378  9F                    lahf                ; Load ah from flags
  4201. F000:9379  50                    push    ax
  4202. F000:937A  33 C0                xor    ax,ax            ; Zero register
  4203. F000:937C  CD 10                int    10h            ; Video display   ah=functn 00h
  4204.                                         ;  set display mode in al
  4205. F000:937E  33 FF                xor    di,di            ; Zero register
  4206. F000:9380  B9 0028                mov    cx,28h
  4207. F000:9383  B8 7020                mov    ax,7020h
  4208. F000:9386  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  4209. F000:9388  58                    pop    ax
  4210. F000:9389  9E                    sahf                ; Store ah into flags
  4211. F000:938A  59                    pop    cx
  4212. F000:938B  07                    pop    es
  4213. F000:938C  C3                    retn
  4214.                 sub_51        endp
  4215.   
  4216. F000:938D  00                    db    0
  4217. F000:938E            loc_326:                    ;  xref F000:CD30
  4218. F000:938E  B0 70                mov    al,70h            ; 'p'
  4219. F000:9390  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4220. F000:9392  55                    push    bp
  4221. F000:9393  33 ED                xor    bp,bp            ; Zero register
  4222. F000:9395  33 C9                xor    cx,cx            ; Zero register
  4223.   
  4224. F000:9397            locloop_327:                    ;  xref F000:93A1
  4225. F000:9397  EB 00                jmp    short loc_328        ; (9399)
  4226. F000:9399            loc_328:                    ;  xref F000:9397
  4227. F000:9399  E4 64                in    al,64h            ; port 64h, keyboard status
  4228. F000:939B  A8 01                test    al,1
  4229. F000:939D  74 02                jz    short loc_329        ; Jump if zero
  4230. F000:939F  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  4231. F000:93A1            loc_329:                    ;  xref F000:939D
  4232. F000:93A1  E2 F4                loop    locloop_327        ; Loop if cx > 0
  4233.   
  4234. F000:93A3  B9 0003                mov    cx,3
  4235.   
  4236. F000:93A6            locloop_330:                    ;  xref F000:93AE
  4237. F000:93A6  51                    push    cx
  4238. F000:93A7  B8 FAFF                mov    ax,0FAFFh
  4239. F000:93AA  E8 FAB6                call    sub_35            ; (8E63)
  4240. F000:93AD  59                    pop    cx
  4241. F000:93AE  E0 F6                loopnz    locloop_330        ; Loop if zf=0, cx>0
  4242.   
  4243. F000:93B0  75 2A                jnz    short loc_335        ; Jump if not zero
  4244. F000:93B2  E8 FADE                call    sub_37            ; (8E93)
  4245. F000:93B5  3C AA                cmp    al,0AAh
  4246. F000:93B7  75 23                jne    short loc_335        ; Jump if not equal
  4247. F000:93B9  B0 71                mov    al,71h            ; 'q'
  4248. F000:93BB  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4249.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 73
  4250.  
  4251. F000:93BD  2E: F6 06 E2C0 40            test    byte ptr cs:data_158,40h    ; (F000:E2C0=0BFh) '@'
  4252. F000:93C3  B0 4D                mov    al,4Dh            ; 'M'
  4253. F000:93C5  74 02                jz    short loc_331        ; Jump if zero
  4254. F000:93C7  B0 6C                mov    al,6Ch            ; 'l'
  4255. F000:93C9            loc_331:                    ;  xref F000:93C5
  4256. F000:93C9  E8 FB0E                call    sub_42            ; (8EDA)
  4257. F000:93CC  33 C9                xor    cx,cx            ; Zero register
  4258.   
  4259. F000:93CE            locloop_332:                    ;  xref F000:93D4
  4260. F000:93CE  EB 00                jmp    short loc_333        ; (93D0)
  4261. F000:93D0            loc_333:                    ;  xref F000:93CE
  4262. F000:93D0  E4 64                in    al,64h            ; port 64h, keyboard status
  4263. F000:93D2  A8 01                test    al,1
  4264. F000:93D4  E1 F8                loopz    locloop_332        ; Loop if zf=1, cx>0
  4265.   
  4266. F000:93D6  74 26                jz    short loc_337        ; Jump if zero
  4267. F000:93D8  EB 00                jmp    short loc_334        ; (93DA)
  4268. F000:93DA            loc_334:                    ;  xref F000:93D8
  4269. F000:93DA  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  4270. F000:93DC            loc_335:                    ;  xref F000:93B0, 93B7
  4271. F000:93DC  B8 01B7                mov    ax,1B7h
  4272. F000:93DF  E8 FF52                call    sub_49            ; (9334)
  4273. F000:93E2  74 1A                jz    short loc_337        ; Jump if zero
  4274. F000:93E4  2E: F6 06 E2C0 03            test    byte ptr cs:data_158,3    ; (F000:E2C0=0BFh)
  4275. F000:93EA  74 12                jz    short loc_337        ; Jump if zero
  4276. F000:93EC  B8 00AB                mov    ax,0ABh
  4277. F000:93EF  E8 FA64                call    sub_34            ; (8E56)
  4278. F000:93F2  75 06                jnz    short loc_336        ; Jump if not zero
  4279. F000:93F4  81 CD 0200                or    bp,200h
  4280. F000:93F8  EB 04                jmp    short loc_337        ; (93FE)
  4281. F000:93FA            loc_336:                    ;  xref F000:93F2
  4282. F000:93FA  81 CD 0400                or    bp,400h
  4283. F000:93FE            loc_337:                    ;  xref F000:93D6, 93E2, 93EA, 93F8
  4284. F000:93FE  B0 72                mov    al,72h            ; 'r'
  4285. F000:9400  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4286. F000:9402  2E: F6 06 E2C0 40            test    byte ptr cs:data_158,40h    ; (F000:E2C0=0BFh) '@'
  4287. F000:9408  B0 45                mov    al,45h            ; 'E'
  4288. F000:940A  74 0A                jz    short loc_338        ; Jump if zero
  4289. F000:940C  B0 64                mov    al,64h            ; 'd'
  4290. F000:940E  E8 FAC9                call    sub_42            ; (8EDA)
  4291. F000:9411  E8 E64B                call    $-19B2h
  4292. F000:9414  EB 03                jmp    short loc_339        ; (9419)
  4293. F000:9416            loc_338:                    ;  xref F000:940A
  4294. F000:9416  E8 FAC1                call    sub_42            ; (8EDA)
  4295. F000:9419            loc_339:                    ;  xref F000:9414
  4296. F000:9419  B8 001E                mov    ax,1Eh
  4297. F000:941C  A3 001A                mov    keybd_q_head,ax        ; (0040:001A=24h)
  4298. F000:941F  A3 001C                mov    keybd_q_tail,ax        ; (0040:001C=24h)
  4299. F000:9422  A3 0080                mov    @keybd_begin,ax        ; (0040:0080=1Eh)
  4300. F000:9425  05 0020                add    ax,20h
  4301. F000:9428  A3 0082                mov    @keybd_end,ax        ; (0040:0082=3Eh)
  4302. F000:942B  E4 21                in    al,21h            ; port 21h, 8259-1 int IMR
  4303. F000:942D  24 B8                and    al,0B8h
  4304. F000:942F  EB 00                jmp    short loc_340        ; (9431)
  4305. F000:9431            loc_340:                    ;  xref F000:942F
  4306. F000:9431  EB 00                jmp    short loc_341        ; (9433)
  4307. F000:9433            loc_341:                    ;  xref F000:9431
  4308.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 74
  4309.  
  4310. F000:9433  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  4311. F000:9435  FB                    sti                ; Enable interrupts
  4312. F000:9436  B0 73                mov    al,73h            ; 's'
  4313. F000:9438  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4314. F000:943A  BE 7E3B                mov    si,7E3Bh
  4315. F000:943D  E8 F979                call    sub_27            ; (8DB9)
  4316. F000:9440  FB                    sti                ; Enable interrupts
  4317. F000:9441  B0 04                mov    al,4
  4318. F000:9443  BA 03F6                mov    dx,3F6h
  4319. F000:9446  EE                    out    dx,al            ; port 3F6h, hdsk0 register
  4320.                                         ;  al = 4, reset controller
  4321. F000:9447  B9 0100                mov    cx,100h
  4322. F000:944A  E8 5C1B                call    sub_264            ; (F068)
  4323. F000:944D  B0 00                mov    al,0
  4324. F000:944F  EE                    out    dx,al            ; port 3F6h, hdsk0 register
  4325. F000:9450  B9 FFF0                mov    cx,0FFF0h
  4326. F000:9453  E8 5C12                call    sub_264            ; (F068)
  4327. F000:9456  B0 74                mov    al,74h            ; 't'
  4328. F000:9458  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4329. F000:945A  A0 0012                mov    al,init_test_flag    ; (0040:0012=0BFh)
  4330. F000:945D  A8 20                test    al,20h            ; ' '
  4331. F000:945F  74 1C                jz    short loc_343        ; Jump if zero
  4332. F000:9461  B0 8E                mov    al,8Eh
  4333. F000:9463  E8 5A39                call    sub_257            ; (EE9F)
  4334. F000:9466  A8 C0                test    al,0C0h
  4335. F000:9468  75 08                jnz    short loc_342        ; Jump if not zero
  4336. F000:946A  B8 FF90                mov    ax,0FF90h
  4337. F000:946D  E8 FEC4                call    sub_49            ; (9334)
  4338. F000:9470  74 0B                jz    short loc_343        ; Jump if zero
  4339. F000:9472            loc_342:                    ;  xref F000:9468
  4340. F000:9472  2E: F6 06 E2C0 30            test    byte ptr cs:data_158,30h    ; (F000:E2C0=0BFh) '0'
  4341. F000:9478  74 03                jz    short loc_343        ; Jump if zero
  4342. F000:947A  E8 1F46                call    sub_136            ; (B3C3)
  4343. F000:947D            loc_343:                    ;  xref F000:945F, 9470, 9478
  4344. F000:947D  FB                    sti                ; Enable interrupts
  4345. F000:947E  B0 75                mov    al,75h            ; 'u'
  4346. F000:9480  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4347. F000:9482  B0 8E                mov    al,8Eh
  4348. F000:9484  E8 5A18                call    sub_257            ; (EE9F)
  4349. F000:9487  A8 C0                test    al,0C0h
  4350. F000:9489  75 15                jnz    short loc_344        ; Jump if not zero
  4351. F000:948B  B0 92                mov    al,92h
  4352. F000:948D  E8 5A0F                call    sub_257            ; (EE9F)
  4353. F000:9490  0A C0                or    al,al            ; Zero ?
  4354. F000:9492  74 0C                jz    short loc_344        ; Jump if zero
  4355. F000:9494  B0 76                mov    al,76h            ; 'v'
  4356. F000:9496  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4357. F000:9498  E8 13FD                call    sub_118            ; (A898)
  4358. F000:949B  FB                    sti                ; Enable interrupts
  4359. F000:949C  B0 77                mov    al,77h            ; 'w'
  4360. F000:949E  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4361. F000:94A0            loc_344:                    ;  xref F000:9489, 9492
  4362. F000:94A0  5B                    pop    bx
  4363. F000:94A1  87 DD                xchg    bx,bp
  4364. F000:94A3  53                    push    bx
  4365. F000:94A4  B0 78                mov    al,78h            ; 'x'
  4366. F000:94A6  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4367.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 75
  4368.  
  4369. F000:94A8  E8 E210                call    $-1DEDh
  4370. F000:94AB  B0 79                mov    al,79h            ; 'y'
  4371. F000:94AD  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4372. F000:94AF  8B 1E 0013                mov    bx,ds:data_32e        ; (C000:0013=4553h)
  4373. F000:94B3  B8 8E8E                mov    ax,8E8Eh
  4374. F000:94B6  E8 59E6                call    sub_257            ; (EE9F)
  4375. F000:94B9  A8 C0                test    al,0C0h
  4376. F000:94BB  75 3D                jnz    short loc_347        ; Jump if not zero
  4377. F000:94BD  50                    push    ax
  4378. F000:94BE  E8 F982                call    sub_33            ; (8E43)
  4379. F000:94C1  B0 7A                mov    al,7Ah            ; 'z'
  4380. F000:94C3  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4381. F000:94C5  B8 9596                mov    ax,9596h
  4382. F000:94C8  E8 0369                call    sub_55            ; (9834)
  4383. F000:94CB  3B C3                cmp    ax,bx
  4384. F000:94CD  74 08                je    short loc_345        ; Jump if equal
  4385. F000:94CF  81 CD 0100                or    bp,100h
  4386. F000:94D3  58                    pop    ax
  4387. F000:94D4  0C 10                or    al,10h
  4388. F000:94D6  50                    push    ax
  4389. F000:94D7            loc_345:                    ;  xref F000:94CD
  4390. F000:94D7  B8 B0B1                mov    ax,0B0B1h
  4391. F000:94DA  E8 59C2                call    sub_257            ; (EE9F)
  4392. F000:94DD  86 C4                xchg    al,ah
  4393. F000:94DF  E8 59BD                call    sub_257            ; (EE9F)
  4394. F000:94E2  8B C8                mov    cx,ax
  4395. F000:94E4  B8 9798                mov    ax,9798h
  4396. F000:94E7  E8 034A                call    sub_55            ; (9834)
  4397. F000:94EA  3B C1                cmp    ax,cx
  4398. F000:94EC  58                    pop    ax
  4399. F000:94ED  74 06                jz    short loc_346        ; Jump if zero
  4400. F000:94EF  81 CD 0100                or    bp,100h
  4401. F000:94F3  0C 10                or    al,10h
  4402. F000:94F5            loc_346:                    ;  xref F000:94ED
  4403. F000:94F5  86 C4                xchg    al,ah
  4404. F000:94F7  E8 59B4                call    sub_258            ; (EEAE)
  4405. F000:94FA            loc_347:                    ;  xref F000:94BB
  4406. F000:94FA  B0 7B                mov    al,7Bh            ; '{'
  4407. F000:94FC  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4408. F000:94FE  68 9505                push    9505h
  4409. F000:9501  68 FA4E                push    0FA4Eh
  4410. F000:9504  C3                    retn
  4411. F000:9505  B0 7C E6 80 E8 C4            db    0B0h, 7Ch, 0E6h, 80h, 0E8h, 0C4h
  4412. F000:950B  E1 FB B0 7D E6 80            db    0E1h, 0FBh, 0B0h, 7Dh, 0E6h, 80h
  4413. F000:9511  B8 B3 B3 E8 88 59            db    0B8h, 0B3h, 0B3h, 0E8h, 88h, 59h
  4414. F000:9517  24 7F 80 FB 08 76            db    24h, 7Fh, 80h, 0FBh, 8, 76h
  4415. F000:951D  02 0C 80 86 C4 E8            db    2, 0Ch, 80h, 86h, 0C4h, 0E8h
  4416. F000:9523  89 59 8B C3 98 C1            db    89h, 59h, 8Bh, 0C3h, 98h, 0C1h
  4417. F000:9529  E0 06 50 2E F6 06            db    0E0h, 6, 50h, 2Eh, 0F6h, 6
  4418. F000:952F  C0 E2 40 74 0B 48            db    0C0h, 0E2h, 40h, 74h, 0Bh, 48h
  4419. F000:9535  8B C8 C1 E0 06 A3            db    8Bh, 0C8h, 0C1h, 0E0h, 6, 0A3h
  4420. F000:953B  0E 00 EB 15                db    0Eh, 0, 0EBh, 15h
  4421. F000:953F            loc_348:
  4422. F000:953F  8B C8                mov    cx,ax
  4423. F000:9541  B0 8E                mov    al,8Eh
  4424. F000:9543  E8 5959                call    sub_257            ; (EE9F)
  4425. F000:9546  A8 C0                test    al,0C0h
  4426.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 76
  4427.  
  4428. F000:9548  75 0A                jnz    short loc_349        ; Jump if not zero
  4429. F000:954A  B0 B8                mov    al,0B8h
  4430. F000:954C  E8 5950                call    sub_257            ; (EE9F)
  4431. F000:954F  A8 10                test    al,10h
  4432. F000:9551  74 01                jz    short loc_349        ; Jump if zero
  4433. F000:9553  49                    dec    cx
  4434. F000:9554            loc_349:                    ;  xref F000:9548, 9551
  4435. F000:9554  89 0E 0013                mov    ds:data_32e,cx        ; (C000:0013=4553h)
  4436. F000:9558  B8 B0B1                mov    ax,0B0B1h
  4437. F000:955B  E8 5941                call    sub_257            ; (EE9F)
  4438. F000:955E  86 C4                xchg    al,ah
  4439. F000:9560  E8 593C                call    sub_257            ; (EE9F)
  4440. F000:9563  C1 E0 06                shl    ax,6            ; Shift w/zeros fill
  4441. F000:9566  50                    push    ax
  4442. F000:9567  B0 B1                mov    al,0B1h
  4443. F000:9569  E8 5942                call    sub_258            ; (EEAE)
  4444. F000:956C  58                    pop    ax
  4445. F000:956D  B4 B0                mov    ah,0B0h
  4446. F000:956F  86 C4                xchg    al,ah
  4447. F000:9571  E8 593A                call    sub_258            ; (EEAE)
  4448. F000:9574  B0 7E                mov    al,7Eh            ; '~'
  4449. F000:9576  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4450. F000:9578  E8 E0F3                call    $-1F0Ah
  4451. F000:957B  FB                    sti                ; Enable interrupts
  4452. F000:957C  C7 06 007C 0101            mov    word ptr ds:data_51e,101h    ; (C000:007C=2E43h)
  4453. F000:9582  C7 06 007E 0101            mov    word ptr ds:data_52e,101h    ; (C000:007E=0A0Dh)
  4454. F000:9588  C7 06 0078 1414            mov    word ptr ds:data_49e,1414h    ; (C000:0078=2053h)
  4455. F000:958E  C7 06 007A 1414            mov    word ptr ds:data_50e,1414h    ; (C000:007A=4E49h)
  4456. F000:9594  B0 7F                mov    al,7Fh
  4457. F000:9596  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4458. F000:9598  B0 8D                mov    al,8Dh
  4459. F000:959A  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  4460. F000:959C  E8 F8A4                call    sub_33            ; (8E43)
  4461. F000:959F  E8 1618                call    sub_121            ; (ABBA)
  4462. F000:95A2  33 C9                xor    cx,cx            ; Zero register
  4463. F000:95A4            loc_350:                    ;  xref F000:95B1, 95B6
  4464. F000:95A4  B4 01                mov    ah,1
  4465. F000:95A6  CD 16                int    16h            ; Keyboard i/o  ah=function 01h
  4466.                                         ;  get status, if zf=0  al=char
  4467. F000:95A8  74 0E                jz    short loc_351        ; Jump if zero
  4468. F000:95AA  B4 00                mov    ah,0
  4469. F000:95AC  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  4470.                                         ;  get keybd char in al, ah=scan
  4471. F000:95AE  80 FC 53                cmp    ah,53h            ; 'S'
  4472. F000:95B1  75 F1                jne    loc_350            ; Jump if not equal
  4473. F000:95B3  B9 5555                mov    cx,5555h
  4474. F000:95B6  EB EC                jmp    short loc_350        ; (95A4)
  4475. F000:95B8            loc_351:                    ;  xref F000:95A8
  4476. F000:95B8  51                    push    cx
  4477. F000:95B9  33 C0                xor    ax,ax            ; Zero register
  4478. F000:95BB  BF 0600                mov    di,600h
  4479. F000:95BE  B9 7D00                mov    cx,7D00h
  4480. F000:95C1  FA                    cli                ; Disable interrupts
  4481. F000:95C2  FC                    cld                ; Clear direction
  4482. F000:95C3  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  4483. F000:95C5  FB                    sti                ; Enable interrupts
  4484. F000:95C6  B0 80                mov    al,80h
  4485.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 77
  4486.  
  4487. F000:95C8  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4488. F000:95CA  BB C800                mov    bx,0C800h
  4489. F000:95CD            loc_352:                    ;  xref F000:95D4
  4490. F000:95CD  E8 F971                call    sub_47            ; (8F41)
  4491. F000:95D0  81 FB E000                cmp    bx,0E000h
  4492. F000:95D4  72 F7                jb    loc_352            ; Jump if below
  4493. F000:95D6  B0 8D                mov    al,8Dh
  4494. F000:95D8  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  4495. F000:95DA  E8 F866                call    sub_33            ; (8E43)
  4496. F000:95DD  B0 81                mov    al,81h
  4497. F000:95DF  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4498. F000:95E1  B0 8E                mov    al,8Eh
  4499. F000:95E3  E8 58B9                call    sub_257            ; (EE9F)
  4500. F000:95E6  A8 C0                test    al,0C0h
  4501. F000:95E8  75 58                jnz    short loc_355        ; Jump if not zero
  4502. F000:95EA  B4 02                mov    ah,2
  4503. F000:95EC  CD 1A                int    1Ah            ; Real time clock   ah=func 02h
  4504.                                         ;  read clock cx=hrs/min, dh=sec
  4505. F000:95EE  72 41                jc    short loc_354        ; Jump if carry Set
  4506. F000:95F0  80 FE 60                cmp    dh,60h            ; '`'
  4507. F000:95F3  73 3C                jae    short loc_354        ; Jump if above or =
  4508. F000:95F5  80 F9 60                cmp    cl,60h            ; '`'
  4509. F000:95F8  73 37                jae    short loc_354        ; Jump if above or =
  4510. F000:95FA  80 FD 24                cmp    ch,24h            ; '$'
  4511. F000:95FD  73 32                jae    short loc_354        ; Jump if above or =
  4512. F000:95FF  8A C6                mov    al,dh
  4513. F000:9601  E8 0226                call    sub_54            ; (982A)
  4514. F000:9604  6B C0 12                imul    ax,ax,12h        ; reg1 = reg2 * value
  4515. F000:9607  91                    xchg    ax,cx
  4516. F000:9608  50                    push    ax
  4517. F000:9609  E8 021E                call    sub_54            ; (982A)
  4518. F000:960C  69 C0 0444                imul    ax,ax,444h        ; reg1 = reg2 * value
  4519. F000:9610  03 C8                add    cx,ax
  4520. F000:9612  58                    pop    ax
  4521. F000:9613  8A C4                mov    al,ah
  4522. F000:9615  E8 0212                call    sub_54            ; (982A)
  4523. F000:9618  50                    push    ax
  4524. F000:9619  6B C0 07                imul    ax,ax,7            ; reg1 = reg2 * value
  4525. F000:961C  03 C1                add    ax,cx
  4526. F000:961E            loc_353:                    ;  xref F000:9645
  4527. F000:961E  FA                    cli                ; Disable interrupts
  4528. F000:961F  A3 006C                mov    ds:data_44e,ax        ; (C000:006C=4D20h)
  4529. F000:9622  58                    pop    ax
  4530. F000:9623  15 0000                adc    ax,0
  4531. F000:9626  A3 006E                mov    ds:data_45e,ax        ; (C000:006E=4349h)
  4532. F000:9629  C6 06 0070 00            mov    byte ptr ds:data_46e,0    ; (C000:0070=52h)
  4533. F000:962E  FB                    sti                ; Enable interrupts
  4534. F000:962F  EB 16                jmp    short loc_356        ; (9647)
  4535. F000:9631            loc_354:                    ;  xref F000:95EE, 95F3, 95F8, 95FD
  4536. F000:9631  81 CD 0200                or    bp,200h
  4537. F000:9635  B8 8E8E                mov    ax,8E8Eh
  4538. F000:9638  E8 5864                call    sub_257            ; (EE9F)
  4539. F000:963B  0C 04                or    al,4
  4540. F000:963D  86 C4                xchg    al,ah
  4541. F000:963F  E8 586C                call    sub_258            ; (EEAE)
  4542. F000:9642            loc_355:                    ;  xref F000:95E8
  4543. F000:9642  33 C0                xor    ax,ax            ; Zero register
  4544.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 78
  4545.  
  4546. F000:9644  50                    push    ax
  4547. F000:9645  EB D7                jmp    short loc_353        ; (961E)
  4548. F000:9647            loc_356:                    ;  xref F000:962F
  4549. F000:9647  FB                    sti                ; Enable interrupts
  4550. F000:9648  FC                    cld                ; Clear direction
  4551. F000:9649  58                    pop    ax
  4552. F000:964A  A3 0069                mov    ds:data_43e,ax        ; (C000:0069=4E45h)
  4553. F000:964D  58                    pop    ax
  4554. F000:964E  A3 0067                mov    ds:data_42e,ax        ; (C000:0067=4449h)
  4555. F000:9651  33 DB                xor    bx,bx            ; Zero register
  4556. F000:9653  33 FF                xor    di,di            ; Zero register
  4557. F000:9655  BA 03BC                mov    dx,3BCh
  4558. F000:9658  E8 01E5                call    sub_56            ; (9840)
  4559. F000:965B  BA 0378                mov    dx,378h
  4560. F000:965E  E8 01DF                call    sub_56            ; (9840)
  4561. F000:9661  BA 0278                mov    dx,278h
  4562. F000:9664  E8 01D9                call    sub_56            ; (9840)
  4563. F000:9667  57                    push    di
  4564. F000:9668  B0 82                mov    al,82h
  4565. F000:966A  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4566. F000:966C  33 FF                xor    di,di            ; Zero register
  4567. F000:966E  BA 03F8                mov    dx,3F8h
  4568. F000:9671  E8 01D8                call    sub_57            ; (984C)
  4569. F000:9674  BA 02F8                mov    dx,2F8h
  4570. F000:9677  E8 01D2                call    sub_57            ; (984C)
  4571. F000:967A  BA 03E8                mov    dx,3E8h
  4572. F000:967D  E8 01CC                call    sub_57            ; (984C)
  4573. F000:9680  BA 02E8                mov    dx,2E8h
  4574. F000:9683  E8 01C6                call    sub_57            ; (984C)
  4575. F000:9686  58                    pop    ax
  4576. F000:9687  C0 C8 03                ror    al,3            ; Rotate
  4577. F000:968A  0B C7                or    ax,di
  4578. F000:968C  08 06 0011                or    ds:data_30e,al        ; (C000:0011=52h)
  4579. F000:9690  B0 83                mov    al,83h
  4580. F000:9692  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4581. F000:9694  80 26 0010 FD            and    byte ptr ds:data_29e,0FDh    ; (C000:0010=20h)
  4582. F000:9699  90                    nop                ;
  4583. F000:969A  DB E3                fninit                ; Initialize math uP
  4584. F000:969C  60                    pusha                ; Save all regs
  4585. F000:969D  61                    popa                ; Restore all regs
  4586. F000:969E  60                    pusha                ; Save all regs
  4587. F000:969F  61                    popa                ; Restore all regs
  4588. F000:96A0  60                    pusha                ; Save all regs
  4589. F000:96A1  61                    popa                ; Restore all regs
  4590. F000:96A2  DF E0                fnstsw    ax            ; Store status word
  4591. F000:96A4  22 C0                and    al,al
  4592. F000:96A6  75 0F                jnz    short loc_359        ; Jump if not zero
  4593. F000:96A8  80 0E 0010 02            or    byte ptr ds:data_29e,2    ; (C000:0010=20h)
  4594. F000:96AD  E4 A1                in    al,0A1h            ; port 0A1h, 8259-2 int IMR
  4595. F000:96AF  24 DF                and    al,0DFh
  4596. F000:96B1  EB 00                jmp    short loc_357        ; (96B3)
  4597. F000:96B3            loc_357:                    ;  xref F000:96B1
  4598. F000:96B3  EB 00                jmp    short loc_358        ; (96B5)
  4599. F000:96B5            loc_358:                    ;  xref F000:96B3
  4600. F000:96B5  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  4601. F000:96B7            loc_359:                    ;  xref F000:96A6
  4602. F000:96B7  E4 21                in    al,21h            ; port 21h, 8259-1 int IMR
  4603.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 79
  4604.  
  4605. F000:96B9  24 F8                and    al,0F8h
  4606. F000:96BB  EB 00                jmp    short loc_360        ; (96BD)
  4607. F000:96BD            loc_360:                    ;  xref F000:96BB
  4608. F000:96BD  EB 00                jmp    short loc_361        ; (96BF)
  4609. F000:96BF            loc_361:                    ;  xref F000:96BD
  4610. F000:96BF  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  4611. F000:96C1  B0 84                mov    al,84h
  4612. F000:96C3  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4613. F000:96C5  E4 64                in    al,64h            ; port 64h, keyboard status
  4614. F000:96C7  A8 10                test    al,10h
  4615. F000:96C9  75 04                jnz    short loc_362        ; Jump if not zero
  4616. F000:96CB  81 CD 1000                or    bp,1000h
  4617. F000:96CF            loc_362:                    ;  xref F000:96C9
  4618. F000:96CF  C6 06 0017 00            mov    byte ptr ds:data_33e,0    ; (C000:0017=45h)
  4619. F000:96D4  C6 06 0096 A0            mov    byte ptr ds:data_59e,0A0h    ; (C000:0096=20h)
  4620. F000:96D9  A0 0012                mov    al,ds:data_31e        ; (C000:0012=45h)
  4621. F000:96DC  A8 20                test    al,20h            ; ' '
  4622. F000:96DE  74 05                jz    short loc_363        ; Jump if zero
  4623. F000:96E0  B0 F2                mov    al,0F2h
  4624. F000:96E2  E8 091C                call    sub_75            ; (A001)
  4625. F000:96E5            loc_363:                    ;  xref F000:96DE
  4626. F000:96E5  FB                    sti                ; Enable interrupts
  4627. F000:96E6  B9 FFF0                mov    cx,0FFF0h
  4628. F000:96E9  E8 597C                call    sub_264            ; (F068)
  4629. F000:96EC  80 26 0096 1F            and    byte ptr ds:data_59e,1Fh    ; (C000:0096=20h)
  4630. F000:96F1  80 26 0097 7F            and    byte ptr ds:data_60e,7Fh    ; (C000:0097=51h)
  4631. F000:96F6  E4 A1                in    al,0A1h            ; port 0A1h, 8259-2 int IMR
  4632. F000:96F8  24 FD                and    al,0FDh
  4633. F000:96FA  EB 00                jmp    short loc_364        ; (96FC)
  4634. F000:96FC            loc_364:                    ;  xref F000:96FA
  4635. F000:96FC  EB 00                jmp    short loc_365        ; (96FE)
  4636. F000:96FE            loc_365:                    ;  xref F000:96FC
  4637. F000:96FE  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  4638. F000:9700  B0 85                mov    al,85h
  4639. F000:9702  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4640. F000:9704  5B                    pop    bx
  4641. F000:9705  55                    push    bp
  4642. F000:9706  B8 02B7                mov    ax,2B7h
  4643. F000:9709  E8 FC28                call    sub_49            ; (9334)
  4644. F000:970C  75 04                jnz    short loc_366        ; Jump if not zero
  4645. F000:970E  81 E5 F3FF                and    bp,0F3FFh
  4646. F000:9712            loc_366:                    ;  xref F000:970C
  4647. F000:9712  81 E5 7FFF                and    bp,7FFFh
  4648. F000:9716  75 07                jnz    short loc_367        ; Jump if not zero
  4649. F000:9718  0B DB                or    bx,bx            ; Zero ?
  4650. F000:971A  75 03                jnz    short loc_367        ; Jump if not zero
  4651. F000:971C  E9 0082                jmp    loc_374            ; (97A1)
  4652. F000:971F            loc_367:                    ;  xref F000:9716, 971A
  4653. F000:971F  E8 F6E5                call    sub_31            ; (8E07)
  4654. F000:9722  B9 8000                mov    cx,8000h
  4655. F000:9725  E8 5940                call    sub_264            ; (F068)
  4656. F000:9728  E8 F6DC                call    sub_31            ; (8E07)
  4657. F000:972B  BE 7AB2                mov    si,7AB2h
  4658. F000:972E  E8 00DC                call    sub_52            ; (980D)
  4659. F000:9731  87 EB                xchg    bp,bx
  4660. F000:9733  E8 00D7                call    sub_52            ; (980D)
  4661. F000:9736  F7 C5 0020                test    bp,20h
  4662.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 80
  4663.  
  4664. F000:973A  75 06                jnz    short loc_368        ; Jump if not zero
  4665. F000:973C  F7 C3 07E2                test    bx,7E2h
  4666. F000:9740  74 17                jz    short loc_369        ; Jump if zero
  4667. F000:9742            loc_368:                    ;  xref F000:973A
  4668. F000:9742  BE 7CE8                mov    si,7CE8h
  4669. F000:9745  E8 F67F                call    sub_28            ; (8DC7)
  4670. F000:9748  E8 00D8                call    sub_53            ; (9823)
  4671. F000:974B  2E: F6 06 E2C0 80            test    byte ptr cs:data_158,80h    ; (F000:E2C0=0BFh)
  4672. F000:9751  74 06                jz    short loc_369        ; Jump if zero
  4673. F000:9753  81 0E 0069 AAAA            or    word ptr ds:data_43e,0AAAAh    ; (C000:0069=4E45h)
  4674. F000:9759            loc_369:                    ;  xref F000:9740, 9751
  4675. F000:9759  BE 7CFA                mov    si,7CFAh
  4676. F000:975C  E8 00C4                call    sub_53            ; (9823)
  4677. F000:975F  A0 0012                mov    al,ds:data_31e        ; (C000:0012=45h)
  4678. F000:9762  A8 20                test    al,20h            ; ' '
  4679. F000:9764  74 3B                jz    short loc_374        ; Jump if zero
  4680. F000:9766  2E: A0 E2C0                mov    al,cs:data_158        ; (F000:E2C0=0BFh)
  4681. F000:976A  A8 80                test    al,80h
  4682. F000:976C  74 21                jz    short loc_372        ; Jump if zero
  4683. F000:976E  A8 02                test    al,2
  4684. F000:9770  75 08                jnz    short loc_370        ; Jump if not zero
  4685. F000:9772  81 E5 F9FF                and    bp,0F9FFh
  4686. F000:9776  81 E3 EFFF                and    bx,0EFFFh
  4687. F000:977A            loc_370:                    ;  xref F000:9770
  4688. F000:977A  A8 20                test    al,20h            ; ' '
  4689. F000:977C  75 03                jnz    short loc_371        ; Jump if not zero
  4690. F000:977E  83 E5 FE                and    bp,0FFFEh
  4691. F000:9781            loc_371:                    ;  xref F000:977C
  4692. F000:9781  0B ED                or    bp,bp            ; Zero ?
  4693. F000:9783  75 13                jnz    short loc_373        ; Jump if not zero
  4694. F000:9785  0B DB                or    bx,bx            ; Zero ?
  4695. F000:9787  74 06                jz    short loc_372        ; Jump if zero
  4696. F000:9789  F7 C3 0004                test    bx,4
  4697. F000:978D  74 09                jz    short loc_373        ; Jump if zero
  4698. F000:978F            loc_372:                    ;  xref F000:976C, 9787
  4699. F000:978F  FB                    sti                ; Enable interrupts
  4700. F000:9790  B9 FFF0                mov    cx,0FFF0h
  4701. F000:9793  E8 58D2                call    sub_264            ; (F068)
  4702. F000:9796  EB 09                jmp    short loc_374        ; (97A1)
  4703. F000:9798            loc_373:                    ;  xref F000:9783, 978D, 979F
  4704. F000:9798  B4 00                mov    ah,0
  4705. F000:979A  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  4706.                                         ;  get keybd char in al, ah=scan
  4707. F000:979C  80 FC 3B                cmp    ah,3Bh            ; ';'
  4708. F000:979F  75 F7                jne    loc_373            ; Jump if not equal
  4709. F000:97A1            loc_374:                    ;  xref F000:971C, 9764, 9796
  4710. F000:97A1  5D                    pop    bp
  4711. F000:97A2  A0 0012                mov    al,ds:data_31e        ; (C000:0012=45h)
  4712. F000:97A5  A8 20                test    al,20h            ; ' '
  4713. F000:97A7  75 1F                jnz    short loc_375        ; Jump if not zero
  4714. F000:97A9  FB                    sti                ; Enable interrupts
  4715. F000:97AA  B8 008F                mov    ax,8Fh
  4716. F000:97AD  E8 56FE                call    sub_258            ; (EEAE)
  4717. F000:97B0  C7 06 0072 0000            mov    word ptr ds:data_47e,0    ; (C000:0072=5953h)
  4718. F000:97B6  B9 FFF0                mov    cx,0FFF0h
  4719. F000:97B9  E8 58AC                call    sub_264            ; (F068)
  4720. F000:97BC  B9 FFF0                mov    cx,0FFF0h
  4721.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 81
  4722.  
  4723. F000:97BF  E8 58A6                call    sub_264            ; (F068)
  4724. F000:97C2  E8 F642                call    sub_31            ; (8E07)
  4725. F000:97C5  E9 4893                jmp    loc_1197        ; (E05B)
  4726. F000:97C8            loc_375:                    ;  xref F000:97A7
  4727. F000:97C8  83 3E 0069 00            cmp    word ptr ds:data_43e,0    ; (C000:0069=4E45h)
  4728. F000:97CD  74 03                je    short loc_376        ; Jump if equal
  4729. F000:97CF  E8 2514                call    sub_164            ; (BCE6)
  4730. F000:97D2            loc_376:                    ;  xref F000:97CD
  4731. F000:97D2  E8 F632                call    sub_31            ; (8E07)
  4732. F000:97D5  B4 0F                mov    ah,0Fh
  4733. F000:97D7  CD 10                int    10h            ; Video display   ah=functn 0Fh
  4734.                                         ;  get state, al=mode, bh=page
  4735. F000:97D9  32 E4                xor    ah,ah            ; Zero register
  4736. F000:97DB  CD 10                int    10h            ; Video display   ah=functn 00h
  4737.                                         ;  set display mode in al
  4738. F000:97DD  B0 0D                mov    al,0Dh
  4739. F000:97DF  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  4740.                                         ;  al = 0Dh, status register D
  4741. F000:97E1  E8 F65F                call    sub_33            ; (8E43)
  4742. F000:97E4  FB                    sti                ; Enable interrupts
  4743. F000:97E5  FC                    cld                ; Clear direction
  4744. F000:97E6  B0 86                mov    al,86h
  4745. F000:97E8  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4746. F000:97EA  BB E000                mov    bx,0E000h
  4747. F000:97ED  88 1E 0072                mov    ds:data_47e,bl        ; (C000:0072=53h)
  4748. F000:97F1  A1 0067                mov    ax,ds:data_42e        ; (C000:0067=4449h)
  4749. F000:97F4  50                    push    ax
  4750. F000:97F5  E8 F749                call    sub_47            ; (8F41)
  4751. F000:97F8  58                    pop    ax
  4752. F000:97F9  A3 0067                mov    ds:data_42e,ax        ; (C000:0067=4449h)
  4753. F000:97FC  B0 00                mov    al,0
  4754. F000:97FE  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  4755. F000:9800  E8 2F9D                call    sub_196            ; (C7A0)
  4756. F000:9803  75 05                jnz    short loc_377        ; Jump if not zero
  4757. F000:9805  B8 0008                mov    ax,8
  4758. F000:9808  FF D0                call    ax            ;*
  4759. F000:980A            loc_377:                    ;  xref F000:9803
  4760. F000:980A  E9 F77F                jmp    loc_284            ; (8F8C)
  4761.   
  4762.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4763.                 ;                   SUBROUTINE
  4764.                 ;
  4765.                 ;         Called from:     F000:972E, 9733
  4766.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4767.   
  4768.                 sub_52        proc    near
  4769. F000:980D  B9 0010                mov    cx,10h
  4770.   
  4771. F000:9810            locloop_378:                    ;  xref F000:9820
  4772. F000:9810  FA                    cli                ; Disable interrupts
  4773. F000:9811  FC                    cld                ; Clear direction
  4774. F000:9812  2E: AD                lods word ptr cs:[si]        ; String [si] to ax
  4775. F000:9814  FB                    sti                ; Enable interrupts
  4776. F000:9815  D1 CD                ror    bp,1            ; Rotate
  4777. F000:9817  73 07                jnc    short loc_379        ; Jump if carry=0
  4778. F000:9819  56                    push    si
  4779. F000:981A  8B F0                mov    si,ax
  4780.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 82
  4781.  
  4782. F000:981C  E8 0004                call    sub_53            ; (9823)
  4783. F000:981F  5E                    pop    si
  4784. F000:9820            loc_379:                    ;  xref F000:9817
  4785. F000:9820  E2 EE                loop    locloop_378        ; Loop if cx > 0
  4786.   
  4787. F000:9822  C3                    retn
  4788.                 sub_52        endp
  4789.   
  4790.   
  4791.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4792.                 ;                   SUBROUTINE
  4793.                 ;
  4794.                 ;         Called from:     F000:9748, 975C, 981C
  4795.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4796.   
  4797.                 sub_53        proc    near
  4798. F000:9823  E8 F5A1                call    sub_28            ; (8DC7)
  4799. F000:9826  E8 F590                call    sub_27            ; (8DB9)
  4800. F000:9829  C3                    retn
  4801.                 sub_53        endp
  4802.   
  4803.   
  4804.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4805.                 ;                   SUBROUTINE
  4806.                 ;
  4807.                 ;         Called from:     F000:9601, 9609, 9615
  4808.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4809.   
  4810.                 sub_54        proc    near
  4811. F000:982A  8A E0                mov    ah,al
  4812. F000:982C  C0 EC 04                shr    ah,4            ; Shift w/zeros fill
  4813. F000:982F  24 0F                and    al,0Fh
  4814. F000:9831  D5 0A                aad                ; Ascii adjust
  4815. F000:9833  C3                    retn
  4816.                 sub_54        endp
  4817.   
  4818.   
  4819.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4820.                 ;                   SUBROUTINE
  4821.                 ;
  4822.                 ;         Called from:     F000:94C8, 94E7
  4823.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4824.   
  4825.                 sub_55        proc    near
  4826. F000:9834  E8 5668                call    sub_257            ; (EE9F)
  4827. F000:9837  86 C4                xchg    al,ah
  4828. F000:9839  E8 5663                call    sub_257            ; (EE9F)
  4829. F000:983C  C1 E8 06                shr    ax,6            ; Shift w/zeros fill
  4830. F000:983F  C3                    retn
  4831.                 sub_55        endp
  4832.   
  4833.   
  4834.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4835.                 ;                   SUBROUTINE
  4836.                 ;
  4837.                 ;         Called from:     F000:9658, 965E, 9664
  4838.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4839.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 83
  4840.  
  4841.   
  4842.                 sub_56        proc    near
  4843. F000:9840  E8 353F                call    sub_208            ; (CD82)
  4844. F000:9843  75 06                jnz    short loc_ret_380    ; Jump if not zero
  4845. F000:9845  89 95 0008                mov    [di+8],dx
  4846.                         nop                ;*Fixup for MASM (M)
  4847. F000:9849  47                    inc    di
  4848. F000:984A  47                    inc    di
  4849.   
  4850. F000:984B            loc_ret_380:                    ;  xref F000:9843
  4851. F000:984B  C3                    retn
  4852.                 sub_56        endp
  4853.   
  4854.   
  4855.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4856.                 ;                   SUBROUTINE
  4857.                 ;
  4858.                 ;         Called from:     F000:9671, 9677, 967D, 9683
  4859.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4860.   
  4861.                 sub_57        proc    near
  4862. F000:984C  52                    push    dx
  4863. F000:984D  42                    inc    dx
  4864. F000:984E  42                    inc    dx
  4865. F000:984F  EC                    in    al,dx            ; port 3FAh, RS232-1 int identy
  4866. F000:9850  A8 F8                test    al,0F8h
  4867. F000:9852  5A                    pop    dx
  4868. F000:9853  75 06                jnz    short loc_ret_381    ; Jump if not zero
  4869. F000:9855  89 95 0000                mov    [di+0],dx
  4870.                         nop                ;*Fixup for MASM (M)
  4871. F000:9859  47                    inc    di
  4872. F000:985A  47                    inc    di
  4873.   
  4874. F000:985B            loc_ret_381:                    ;  xref F000:9853
  4875. F000:985B  C3                    retn
  4876.                 sub_57        endp
  4877.   
  4878. F000:985C  000A[FE]                db    10 dup (0FEh)
  4879. F000:9866  D5 66 5E 66 96 76            db    0D5h, 66h, 5Eh, 66h, 96h, 76h
  4880. F000:986C  76 6E 5E 96 7E 4E            db    76h, 6Eh, 5Eh, 96h, 7Eh, 4Eh
  4881. F000:9872  76 66 36 7E 96 A1            db    76h, 66h, 36h, 7Eh, 96h, 0A1h
  4882.   
  4883.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4884.                 ;                   SUBROUTINE
  4885.                 ;
  4886.                 ;         Called from:     F000:A8F5
  4887.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4888.   
  4889.                 sub_58        proc    near
  4890. F000:9878  51                    push    cx
  4891. F000:9879  BF 0104                mov    di,104h
  4892. F000:987C  B5 9B                mov    ch,9Bh
  4893. F000:987E  EB 06                jmp    short loc_382        ; (9886)
  4894.   
  4895.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4896.                 ;
  4897.                 ;         Called from:     F000:A932
  4898.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 84
  4899.  
  4900.   
  4901.                 sub_59:
  4902. F000:9880  51                    push    cx
  4903. F000:9881  BF 0118                mov    di,118h
  4904. F000:9884  B5 A4                mov    ch,0A4h
  4905. F000:9886            loc_382:                    ;  xref F000:987E
  4906. F000:9886  FA                    cli                ; Disable interrupts
  4907. F000:9887  FC                    cld                ; Clear direction
  4908. F000:9888  52                    push    dx
  4909. F000:9889  06                    push    es
  4910. F000:988A  2E: F6 06 E2C0 40            test    byte ptr cs:data_158,40h    ; (F000:E2C0=0BFh) '@'
  4911. F000:9890  75 0C                jnz    short loc_383        ; Jump if not zero
  4912. F000:9892  B0 B8                mov    al,0B8h
  4913. F000:9894  E8 5608                call    sub_257            ; (EE9F)
  4914. F000:9897  A8 10                test    al,10h
  4915. F000:9899  B8 002D                mov    ax,2Dh
  4916. F000:989C  74 0B                jz    short loc_384        ; Jump if zero
  4917. F000:989E            loc_383:                    ;  xref F000:9890
  4918. F000:989E  A1 0013                mov    ax,ds:data_32e        ; (C000:0013=4553h)
  4919. F000:98A1  98                    cbw                ; Convrt byte to word
  4920. F000:98A2  C1 E0 06                shl    ax,6            ; Shift w/zeros fill
  4921. F000:98A5  48                    dec    ax
  4922. F000:98A6  C1 E0 06                shl    ax,6            ; Shift w/zeros fill
  4923. F000:98A9            loc_384:                    ;  xref F000:989C
  4924. F000:98A9  8B D0                mov    dx,ax
  4925. F000:98AB  B8 003D                mov    ax,3Dh
  4926. F000:98AE  80 FD 9B                cmp    ch,9Bh
  4927. F000:98B1  74 03                je    short loc_385        ; Jump if equal
  4928. F000:98B3  B8 004D                mov    ax,4Dh
  4929. F000:98B6            loc_385:                    ;  xref F000:98B1
  4930. F000:98B6  AB                    stosw                ; Store ax to es:[di]
  4931. F000:98B7  50                    push    ax
  4932. F000:98B8  8B C2                mov    ax,dx
  4933. F000:98BA  AB                    stosw                ; Store ax to es:[di]
  4934. F000:98BB  8E C0                mov    es,ax
  4935. F000:98BD  3D F7FA                cmp    ax,0F7FAh
  4936. F000:98C0  75 00                jne    short loc_386        ; Jump if not equal
  4937. F000:98C2            loc_386:                    ;  xref F000:98C0
  4938. F000:98C2  5F                    pop    di
  4939. F000:98C3  06                    push    es
  4940. F000:98C4  E8 002F                call    sub_60            ; (98F6)
  4941. F000:98C7  E8 002C                call    sub_60            ; (98F6)
  4942. F000:98CA  E8 0029                call    sub_60            ; (98F6)
  4943. F000:98CD  33 C0                xor    ax,ax            ; Zero register
  4944. F000:98CF  AB                    stosw                ; Store ax to es:[di]
  4945. F000:98D0  E8 0023                call    sub_60            ; (98F6)
  4946. F000:98D3  E8 0020                call    sub_60            ; (98F6)
  4947. F000:98D6  32 C0                xor    al,al            ; Zero register
  4948. F000:98D8  AA                    stosb                ; Store al to es:[di]
  4949. F000:98D9  E8 001A                call    sub_60            ; (98F6)
  4950. F000:98DC  33 C0                xor    ax,ax            ; Zero register
  4951.   
  4952. F000:98DE            locloop_387:
  4953. F000:98DE  AB                    stosw                ; Store ax to es:[di]
  4954. F000:98DF  AA                    stosb                ; Store al to es:[di]
  4955. F000:98E0  E8 0013                call    sub_60            ; (98F6)
  4956. F000:98E3  E8 0010                call    sub_60            ; (98F6)
  4957.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 85
  4958.  
  4959. F000:98E6  E8 000D                call    sub_60            ; (98F6)
  4960. F000:98E9  32 C0                xor    al,al            ; Zero register
  4961. F000:98EB  AA                    stosb                ; Store al to es:[di]
  4962. F000:98EC  58                    pop    ax
  4963. F000:98ED  3D F7FA                cmp    ax,0F7FAh
  4964. F000:98F0  75 00                jne    short loc_388        ; Jump if not equal
  4965. F000:98F2            loc_388:                    ;  xref F000:98F0
  4966. F000:98F2  07                    pop    es
  4967. F000:98F3  5A                    pop    dx
  4968. F000:98F4  59                    pop    cx
  4969. F000:98F5  C3                    retn
  4970.                 sub_58        endp
  4971.   
  4972.   
  4973.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4974.                 ;                   SUBROUTINE
  4975.                 ;
  4976.                 ;         Called from:     F000:98C4, 98C7, 98CA, 98D0, 98D3, 98D9, 98E0
  4977.                 ;                  98E3, 98E6
  4978.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4979.   
  4980.                 sub_60        proc    near
  4981. F000:98F6  8A C5                mov    al,ch
  4982. F000:98F8  FE C5                inc    ch
  4983. F000:98FA  E8 55A2                call    sub_257            ; (EE9F)
  4984. F000:98FD  AA                    stosb                ; Store al to es:[di]
  4985. F000:98FE  C3                    retn
  4986.                 sub_60        endp
  4987.   
  4988. F000:98FF  00 F0                db    0, 0F0h
  4989. F000:9901  78 79 7A 7B 7C 7D            db    'xyz{|}~', 7Fh
  4990. F000:9907  7E 7F
  4991. F000:9909  80 81 82 83 F0            db    80h, 81h, 82h, 83h, 0F0h
  4992.   
  4993. F000:990E            locloop_389:
  4994. F000:990E  A5                    movsw                ; Mov [si] to es:[di]
  4995. F000:990F  10 11                adc    [bx+di],dl
  4996. F000:9911  12 13                adc    dl,[bp+di]
  4997. F000:9913  14 15                adc    al,15h
  4998. F000:9915  16                    push    ss
  4999. F000:9916  17                    pop    ss
  5000. F000:9917  18 19                sbb    [bx+di],bl
  5001. F000:9919  F0 F0 F0 FF 1E 1F            db    0F0h, 0F0h, 0F0h, 0FFh, 1Eh, 1Fh
  5002. F000:991F  20 21 22 23 24 25            db    20h, 21h, 22h, 23h, 24h, 25h
  5003. F000:9925  26 F0 F0 F0 FF F0            db    26h, 0F0h, 0F0h, 0F0h, 0FFh, 0F0h
  5004. F000:992B  2C 2D 2E 2F 30 31            db    2Ch, 2Dh, 2Eh, 2Fh, 30h, 31h
  5005. F000:9931  32 F0 F0 F0 FF F0            db    32h, 0F0h, 0F0h, 0F0h, 0FFh, 0F0h
  5006. F000:9937  FF 20 FF                db    0FFh, 20h, 0FFh
  5007. F000:993A  68 69 6A 6B 6C 6D            db    'hijklmnopq'
  5008. F000:9940  6E 6F 70 71
  5009. F000:9944  FF FF 07 08 09 F0            db    0FFh, 0FFh, 7, 8, 9, 0F0h
  5010. F000:994A  04 05 06 F0 01 02            db    4, 5, 6, 0F0h, 1, 2
  5011. F000:9950  03 00 53 FF FF FF            db    3, 0, 53h, 0FFh, 0FFh, 0FFh
  5012. F000:9956  8B 8C BB E2 B3 E2            db    8Bh, 8Ch, 0BBh, 0E2h, 0B3h, 0E2h
  5013. F000:995C  81 79 31 69 B1 C1            db    81h, 79h, 31h, 69h, 0B1h, 0C1h
  5014. F000:9962  B9 59 FB F2 E1 E1            db    0B9h, 59h, 0FBh, 0F2h, 0E1h, 0E1h
  5015. F000:9968  D1 61 61 FB 92 D1            db    0D1h, 61h, 61h, 0FBh, 92h, 0D1h
  5016.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 86
  5017.  
  5018. F000:996E  59 B9 81 D9 61 FB            db    59h, 0B9h, 81h, 0D9h, 61h, 0FBh
  5019. F000:9974  B2 89 E1 8B FF FE            db    0B2h, 89h, 0E1h, 8Bh, 0FFh, 0FEh
  5020. F000:997A  67 04 03 FF 00 0F            db    67h, 4, 3, 0FFh, 0, 0Fh
  5021. F000:9980  1B FF 00 FF FF FF            db    1Bh, 0FFh, 0, 0FFh, 0FFh, 0FFh
  5022. F000:9986  1E FF FF FF FF 1F            db    1Eh, 0FFh, 0FFh, 0FFh, 0FFh, 1Fh
  5023. F000:998C  FF 7F 94 11 17 05            db    0FFh, 7Fh, 94h, 11h, 17h, 5
  5024. F000:9992  12 14 19 15 09 0F            db    12h, 14h, 19h, 15h, 9, 0Fh
  5025. F000:9998  10 1B 1D                db    10h, 1Bh, 1Dh
  5026. F000:999B            loc_390:                    ;  xref F000:99E7
  5027. F000:999B  0A FF                or    bh,bh            ; Zero ?
  5028. F000:999D  01 13                add    [bp+di],dx
  5029. F000:999F  04 06                add    al,6
  5030. F000:99A1  07                    pop    es
  5031. F000:99A2  08 0A                or    [bp+si],cl
  5032. F000:99A4  0B 0C                or    cx,[si]
  5033. F000:99A6  FF FF FF FF 1C 1A            db    0FFh, 0FFh, 0FFh, 0FFh, 1Ch, 1Ah
  5034. F000:99AC  18 03 16 02 0E 0D            db    18h, 3, 16h, 2, 0Eh, 0Dh
  5035. F000:99B2  FF FF 95 FF 96 FF            db    0FFh, 0FFh, 95h, 0FFh, 96h, 0FFh
  5036. F000:99B8  20 FF                db    20h, 0FFh
  5037. F000:99BA  5E 5F 60 61 62 63            db    '^_`abcdefgEFw'
  5038. F000:99C0  64 65 66 67 45 46
  5039. F000:99C6  77
  5040. F000:99C7  8D 84 8E 73 8F 74            db    8Dh, 84h, 8Eh, 73h, 8Fh, 74h
  5041. F000:99CD  90 75 91 76 92 93            db    90h, 75h, 91h, 76h, 92h, 93h
  5042. F000:99D3  FF FF FF 89 8A 5F            db    0FFh, 0FFh, 0FFh, 89h, 8Ah, 5Fh
  5043. F000:99D9  F2 5B 7F CA CA            db    0F2h, 5Bh, 7Fh, 0CAh, 0CAh
  5044. F000:99DE            loc_391:
  5045. F000:99DE  F2 7F EE                db    0F2h, 7Fh, 0EEh
  5046. F000:99E1  5A 62 5A 2E 7A            db    5Ah, 62h, 5Ah, 2Eh, 7Ah
  5047.   
  5048. F000:99E6            locloop_392:
  5049. F000:99E6  4E                    dec    si
  5050. F000:99E7  7F B2                jg    loc_390            ; Jump if >
  5051. F000:99E9  1A 32                sbb    dh,[bp+si]
  5052. F000:99EB  2E 6A 4A 32 4F 7F            db    2Eh, 6Ah, 4Ah, 32h, 4Fh, 7Fh
  5053. F000:99F1  DA C6 EE DA FA            db    0DAh, 0C6h, 0EEh, 0DAh, 0FAh
  5054. F000:99F6  4F 7F 3B 3B 4B 3B            db    'O', 7Fh, ';;K;3K'
  5055. F000:99FC  33 4B
  5056. F000:99FE  1F 2B 1B                db    1Fh, 2Bh, 1Bh
  5057. F000:9A01  21 40 23 24                db    '!@#$'
  5058. F000:9A05  25 5E 26 2A 28 29            db    '%^&*()_+'
  5059. F000:9A0B  5F 2B
  5060. F000:9A0D  08 00                db    8, 0
  5061. F000:9A0F  51 57 45 52 54 59            db    'QWERTYUIOP{}', 0Dh
  5062. F000:9A15  55 49 4F 50 7B 7D
  5063. F000:9A1B  0D
  5064. F000:9A1C  FF                    db    0FFh
  5065. F000:9A1D  41 53 44 46 47 48            db    'ASDFGHJKL:"~'
  5066. F000:9A23  4A 4B 4C 3A 22 7E
  5067. F000:9A29  FF                    db    0FFh
  5068. F000:9A2A  7C 5A 58 43 56 42            db    '|ZXCVBNM<>?'
  5069. F000:9A30  4E 4D 3C 3E 3F
  5070. F000:9A35  FF 2A FF 20 FF            db    0FFh, 2Ah, 0FFh, 20h, 0FFh
  5071. F000:9A3A  54 55 56 57 58 59            db    'TUVWXYZ[\]'
  5072. F000:9A40  5A 5B 5C 5D
  5073. F000:9A44  FF FF                db    0FFh, 0FFh
  5074. F000:9A46  37 38 39 2D 34 35            db    '789-456+1230.'
  5075.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 87
  5076.  
  5077. F000:9A4C  36 2B 31 32 33 30
  5078. F000:9A52  2E
  5079. F000:9A53  FF FF 7C 87 88            db    0FFh, 0FFh, 7Ch, 87h, 88h
  5080. F000:9A58  2A 35 36 37 38 39            db    '*56789?/'
  5081. F000:9A5E  3F 2F
  5082. F000:9A60  BB E2 B3 E2 81 79            db    0BBh, 0E2h, 0B3h, 0E2h, 81h, 79h
  5083. F000:9A66  31 69 B1 C1 B9 59            db    31h, 69h, 0B1h, 0C1h, 0B9h, 59h
  5084. F000:9A6C  FB F2 E1 E1 D1 61            db    0FBh, 0F2h, 0E1h, 0E1h, 0D1h, 61h
  5085. F000:9A72  61 FB 92 D1 59 B9            db    61h, 0FBh, 92h, 0D1h, 59h, 0B9h
  5086. F000:9A78  81 D9 61 FB B2 89            db    81h, 0D9h, 61h, 0FBh, 0B2h, 89h
  5087. F000:9A7E  E1 8B 1B                db    0E1h, 8Bh, 1Bh
  5088. F000:9A81  31 32 33 34 35            db    31h, 32h, 33h, 34h, 35h
  5089. F000:9A86            loc_393:
  5090. F000:9A86  36 37 38 39 30 2D            db    36h, 37h, 38h, 39h, 30h, 2Dh
  5091. F000:9A8C  3D 08                db    3Dh, 8
  5092. F000:9A8E  09 71 77 65 72 74            db    9, 'qwertyuio'
  5093. F000:9A94  79 75 69 6F
  5094. F000:9A98            loc_394:
  5095. F000:9A98  70 5B                jo    short loc_395        ; Jump if overflow=1
  5096. F000:9A9A  5D                    pop    bp
  5097. F000:9A9B  0D 61FF                or    ax,61FFh
  5098. F000:9A9E  73 64                jnc    short loc_396        ; Jump if carry=0
  5099. F000:9AA0  66 67 68 6A 6B 6C            db    'fghjkl;', 27h, '`'
  5100. F000:9AA6  3B 27 60
  5101. F000:9AA9  FF                    db    0FFh
  5102. F000:9AAA  5C 7A 78 63 76 62            db    '\zxcvbnm,./'
  5103. F000:9AB0  6E 6D 2C 2E 2F
  5104. F000:9AB5  FF 2A FF 20 FF            db    0FFh, 2Ah, 0FFh, 20h, 0FFh
  5105. F000:9ABA  3B 3C 3D 3E 3F 40            db    ';<=>?@ABCD'
  5106. F000:9AC0  41 42 43 44
  5107. F000:9AC4  FF FF 47 48 49 2D            db    0FFh, 0FFh, 47h, 48h, 49h, 2Dh
  5108. F000:9ACA  4B F0 4D 2B 4F 50            db    4Bh, 0F0h, 4Dh, 2Bh, 4Fh, 50h
  5109. F000:9AD0  51 52 53 FF FF 5C            db    51h, 52h, 53h, 0FFh, 0FFh, 5Ch
  5110. F000:9AD6  85 86 5F F2 5B 7F            db    85h, 86h, 5Fh, 0F2h, 5Bh, 7Fh
  5111. F000:9ADC  CA CA F2 7F EE 5A            db    0CAh, 0CAh, 0F2h, 7Fh, 0EEh, 5Ah
  5112. F000:9AE2  62 5A 2E 7A 4E 7F            db    62h, 5Ah, 2Eh, 7Ah, 4Eh, 7Fh
  5113. F000:9AE8  B2 1A 32 2E 6A 4A            db    0B2h, 1Ah, 32h, 2Eh, 6Ah, 4Ah
  5114. F000:9AEE  32 4F 7F DA C6 EE            db    32h, 4Fh, 7Fh, 0DAh, 0C6h, 0EEh
  5115. F000:9AF4  DA                    db    0DAh
  5116. F000:9AF5            loc_395:                    ;  xref F000:9A98
  5117. F000:9AF5  FA                    cli                ; Disable interrupts
  5118. F000:9AF6  4F                    dec    di
  5119. F000:9AF7  7F 3B                jg    short loc_401        ; Jump if >
  5120. F000:9AF9  3B 4B 3B                cmp    cx,[bp+di+3Bh]
  5121. F000:9AFC  33 4B 1F                xor    cx,[bp+di+1Fh]
  5122. F000:9AFF  2B FB                sub    di,bx
  5123. F000:9B01  FC                    cld                ; Clear direction
  5124. F000:9B02  60                    pusha                ; Save all regs
  5125. F000:9B03  1E                    push    ds
  5126. F000:9B04            loc_396:                    ;  xref F000:9A9E
  5127. F000:9B04  8B EC                mov    bp,sp
  5128. F000:9B06  6A 40                push    40h
  5129. F000:9B08  1F                    pop    ds
  5130. F000:9B09  E8 03FE                call    sub_69            ; (9F0A)
  5131. F000:9B0C  F9                    stc                ; Set carry flag
  5132. F000:9B0D  B4 4F                mov    ah,4Fh            ; 'O'
  5133. F000:9B0F  CD 15                int    15h            ; General services, ah=func 4Fh
  5134.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 88
  5135.  
  5136.                                         ;  change keyboard scan code
  5137. F000:9B11            loc_397:
  5138. F000:9B11  FA                    cli                ; Disable interrupts
  5139. F000:9B12            loc_398:
  5140. F000:9B12  73 69                jnc    short loc_406        ; Jump if carry=0
  5141. F000:9B14  3C FE                cmp    al,0FEh
  5142. F000:9B16  75 07                jne    short loc_399        ; Jump if not equal
  5143. F000:9B18  80 0E 0097 20            or    keybd_flags_4,20h    ; (0040:0097=10h) ' '
  5144. F000:9B1D  EB 5E                jmp    short loc_406        ; (9B7D)
  5145. F000:9B1F            loc_399:                    ;  xref F000:9B16
  5146. F000:9B1F  3C FA                cmp    al,0FAh
  5147. F000:9B21  75 07                jne    short loc_400        ; Jump if not equal
  5148. F000:9B23  80 0E 0097 10            or    keybd_flags_4,10h    ; (0040:0097=10h)
  5149. F000:9B28  EB 53                jmp    short loc_406        ; (9B7D)
  5150. F000:9B2A            loc_400:                    ;  xref F000:9B21
  5151. F000:9B2A  FB                    sti                ; Enable interrupts
  5152. F000:9B2B  50                    push    ax
  5153. F000:9B2C  E8 047D                call    sub_72            ; (9FAC)
  5154. F000:9B2F  74 03                jz    short loc_401        ; Jump if zero
  5155. F000:9B31  E8 048A                call    sub_73            ; (9FBE)
  5156. F000:9B34            loc_401:                    ;  xref F000:9AF7, 9B2F
  5157. F000:9B34  58                    pop    ax
  5158. F000:9B35  3C FD                cmp    al,0FDh
  5159. F000:9B37  74 04                je    short loc_402        ; Jump if equal
  5160. F000:9B39  3C FF                cmp    al,0FFh
  5161. F000:9B3B  75 06                jne    short loc_403        ; Jump if not equal
  5162. F000:9B3D            loc_402:                    ;  xref F000:9B37
  5163. F000:9B3D  E8 03ED                call    sub_71            ; (9F2D)
  5164. F000:9B40  E9 0340                jmp    loc_470            ; (9E83)
  5165. F000:9B43            loc_403:                    ;  xref F000:9B3B
  5166. F000:9B43  F6 06 0096 C0            test    keybd_flags_3,0C0h    ; (0040:0096=10h)
  5167. F000:9B48  74 36                jz    short loc_407        ; Jump if zero
  5168. F000:9B4A  79 10                jns    short loc_404        ; Jump if not sign
  5169. F000:9B4C  80 26 0096 7F            and    keybd_flags_3,7Fh    ; (0040:0096=10h)
  5170. F000:9B51  3C AB                cmp    al,0ABh
  5171. F000:9B53  75 28                jne    short loc_406        ; Jump if not equal
  5172. F000:9B55  80 0E 0096 40            or    keybd_flags_3,40h    ; (0040:0096=10h) '@'
  5173. F000:9B5A  EB 21                jmp    short loc_406        ; (9B7D)
  5174. F000:9B5C            loc_404:                    ;  xref F000:9B4A
  5175. F000:9B5C  80 26 0096 BF            and    keybd_flags_3,0BFh    ; (0040:0096=10h)
  5176. F000:9B61  3C 54                cmp    al,54h            ; 'T'
  5177. F000:9B63  74 13                je    short loc_405        ; Jump if equal
  5178. F000:9B65  3C 41                cmp    al,41h            ; 'A'
  5179. F000:9B67  75 14                jne    short loc_406        ; Jump if not equal
  5180. F000:9B69  F6 06 0096 20            test    keybd_flags_3,20h    ; (0040:0096=10h) ' '
  5181. F000:9B6E  74 08                jz    short loc_405        ; Jump if zero
  5182. F000:9B70  80 0E 0017 20            or    keybd_flags_1,20h    ; (0040:0017=80h) ' '
  5183. F000:9B75  E8 0446                call    sub_73            ; (9FBE)
  5184. F000:9B78            loc_405:                    ;  xref F000:9B63, 9B6E
  5185. F000:9B78  80 0E 0096 10            or    keybd_flags_3,10h    ; (0040:0096=10h)
  5186. F000:9B7D            loc_406:                    ;  xref F000:9B12, 9B1D, 9B28, 9B53
  5187.                                         ;            9B5A, 9B67, 9BAA, 9BB4
  5188. F000:9B7D  E9 00A1                jmp    loc_419            ; (9C21)
  5189. F000:9B80            loc_407:                    ;  xref F000:9B48
  5190. F000:9B80  3C E1                cmp    al,0E1h
  5191. F000:9B82  75 07                jne    short loc_408        ; Jump if not equal
  5192. F000:9B84  80 0E 0096 11            or    keybd_flags_3,11h    ; (0040:0096=10h)
  5193.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 89
  5194.  
  5195. F000:9B89  EB 09                jmp    short loc_409        ; (9B94)
  5196. F000:9B8B            loc_408:                    ;  xref F000:9B82
  5197. F000:9B8B  3C E0                cmp    al,0E0h
  5198. F000:9B8D  75 08                jne    short loc_410        ; Jump if not equal
  5199. F000:9B8F  80 0E 0096 12            or    keybd_flags_3,12h    ; (0040:0096=10h)
  5200. F000:9B94            loc_409:                    ;  xref F000:9B89
  5201. F000:9B94  E9 008D                jmp    loc_420            ; (9C24)
  5202. F000:9B97            loc_410:                    ;  xref F000:9B8D
  5203. F000:9B97  A8 80                test    al,80h
  5204. F000:9B99  75 03                jnz    short loc_411        ; Jump if not zero
  5205. F000:9B9B  E9 0089                jmp    loc_421            ; (9C27)
  5206. F000:9B9E            loc_411:                    ;  xref F000:9B99
  5207. F000:9B9E  24 7F                and    al,7Fh
  5208. F000:9BA0  E8 04D3                call    sub_81            ; (A076)
  5209. F000:9BA3  74 07                jz    short loc_412        ; Jump if zero
  5210. F000:9BA5  E8 0342                call    sub_66            ; (9EEA)
  5211. F000:9BA8  74 7A                jz    short loc_420        ; Jump if zero
  5212. F000:9BAA  EB D1                jmp    short loc_406        ; (9B7D)
  5213. F000:9BAC            loc_412:                    ;  xref F000:9BA3
  5214. F000:9BAC  E8 04C1                call    sub_80            ; (A070)
  5215. F000:9BAF  74 05                jz    short loc_413        ; Jump if zero
  5216. F000:9BB1  E8 0342                call    sub_67            ; (9EF6)
  5217. F000:9BB4  74 C7                jz    loc_406            ; Jump if zero
  5218. F000:9BB6            loc_413:                    ;  xref F000:9BAF
  5219. F000:9BB6  E8 0320                call    sub_65            ; (9ED9)
  5220. F000:9BB9  74 06                jz    short loc_414        ; Jump if zero
  5221. F000:9BBB  B4 80                mov    ah,80h
  5222. F000:9BBD  3C 52                cmp    al,52h            ; 'R'
  5223. F000:9BBF  75 08                jne    short loc_415        ; Jump if not equal
  5224. F000:9BC1            loc_414:                    ;  xref F000:9BB9
  5225. F000:9BC1  F6 D4                not    ah
  5226. F000:9BC3  20 26 0018                and    keybd_flags_2,ah    ; (0040:0018=0)
  5227. F000:9BC7  EB 58                jmp    short loc_419        ; (9C21)
  5228. F000:9BC9            loc_415:                    ;  xref F000:9BBF
  5229. F000:9BC9  3C 54                cmp    al,54h            ; 'T'
  5230. F000:9BCB  75 0B                jne    short loc_416        ; Jump if not equal
  5231. F000:9BCD  80 26 0018 FB            and    keybd_flags_2,0FBh    ; (0040:0018=0)
  5232. F000:9BD2  B8 8501                mov    ax,8501h
  5233. F000:9BD5  E9 00B0                jmp    loc_426            ; (9C88)
  5234. F000:9BD8            loc_416:                    ;  xref F000:9BCB
  5235. F000:9BD8  E8 030F                call    sub_66            ; (9EEA)
  5236. F000:9BDB  75 44                jnz    short loc_419        ; Jump if not zero
  5237. F000:9BDD  F6 D4                not    ah
  5238. F000:9BDF  20 26 0017                and    keybd_flags_1,ah    ; (0040:0017=80h)
  5239. F000:9BE3  50                    push    ax
  5240. F000:9BE4  E8 030F                call    sub_67            ; (9EF6)
  5241. F000:9BE7  58                    pop    ax
  5242. F000:9BE8  74 37                jz    short loc_419        ; Jump if zero
  5243. F000:9BEA  E8 0483                call    sub_80            ; (A070)
  5244. F000:9BED  86 C4                xchg    al,ah
  5245. F000:9BEF  74 06                jz    short loc_417        ; Jump if zero
  5246. F000:9BF1  20 06 0096                and    keybd_flags_3,al    ; (0040:0096=10h)
  5247. F000:9BF5  EB 07                jmp    short loc_418        ; (9BFE)
  5248. F000:9BF7            loc_417:                    ;  xref F000:9BEF
  5249. F000:9BF7  C0 F8 02                sar    al,2            ; Shift w/sign fill
  5250. F000:9BFA  20 06 0018                and    keybd_flags_2,al    ; (0040:0018=0)
  5251. F000:9BFE            loc_418:                    ;  xref F000:9BF5
  5252.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 90
  5253.  
  5254. F000:9BFE  A0 0018                mov    al,keybd_flags_2    ; (0040:0018=0)
  5255. F000:9C01  C0 E0 02                shl    al,2            ; Shift w/zeros fill
  5256. F000:9C04  0A 06 0096                or    al,keybd_flags_3    ; (0040:0096=10h)
  5257. F000:9C08  24 0C                and    al,0Ch
  5258. F000:9C0A  08 06 0017                or    keybd_flags_1,al    ; (0040:0017=80h)
  5259. F000:9C0E  86 C4                xchg    al,ah
  5260. F000:9C10  3C 38                cmp    al,38h            ; '8'
  5261. F000:9C12  75 0D                jne    short loc_419        ; Jump if not equal
  5262. F000:9C14  33 C0                xor    ax,ax            ; Zero register
  5263. F000:9C16  86 06 0019                xchg    al,keybd_alt_num    ; (0040:0019=0)
  5264. F000:9C1A  22 C0                and    al,al
  5265. F000:9C1C  74 03                jz    short loc_419        ; Jump if zero
  5266. F000:9C1E  E9 035B                jmp    loc_489            ; (9F7C)
  5267. F000:9C21            loc_419:                    ;  xref F000:9B7D, 9BC7, 9BDB, 9BE8
  5268.                                         ;            9C12, 9C1C, 9C33, 9C3A
  5269.                                         ;            9C47, 9C57, 9C62, 9C6B
  5270.                                         ;            9C6F, 9C73, 9C7E
  5271. F000:9C21  E9 0255                jmp    loc_468            ; (9E79)
  5272. F000:9C24            loc_420:                    ;  xref F000:9B94, 9BA8, 9C2F
  5273. F000:9C24  E9 0257                jmp    loc_469            ; (9E7E)
  5274. F000:9C27            loc_421:                    ;  xref F000:9B9B
  5275. F000:9C27  E8 044C                call    sub_81            ; (A076)
  5276. F000:9C2A  74 13                jz    short loc_422        ; Jump if zero
  5277. F000:9C2C  E8 02BB                call    sub_66            ; (9EEA)
  5278. F000:9C2F  74 F3                jz    loc_420            ; Jump if zero
  5279. F000:9C31  3C 45                cmp    al,45h            ; 'E'
  5280. F000:9C33  75 EC                jne    loc_419            ; Jump if not equal
  5281. F000:9C35  F6 06 0018 08            test    keybd_flags_2,8        ; (0040:0018=0)
  5282. F000:9C3A  75 E5                jnz    loc_419            ; Jump if not zero
  5283. F000:9C3C  E9 0102                jmp    loc_443            ; (9D41)
  5284. F000:9C3F            loc_422:                    ;  xref F000:9C2A
  5285. F000:9C3F  E8 042E                call    sub_80            ; (A070)
  5286. F000:9C42  74 05                jz    short loc_423        ; Jump if zero
  5287. F000:9C44  E8 02AF                call    sub_67            ; (9EF6)
  5288. F000:9C47  74 D8                jz    loc_419            ; Jump if zero
  5289. F000:9C49            loc_423:                    ;  xref F000:9C42
  5290. F000:9C49  E8 029E                call    sub_66            ; (9EEA)
  5291. F000:9C4C  75 1F                jnz    short loc_425        ; Jump if not zero
  5292. F000:9C4E  08 26 0017                or    keybd_flags_1,ah    ; (0040:0017=80h)
  5293. F000:9C52  50                    push    ax
  5294. F000:9C53  E8 02A0                call    sub_67            ; (9EF6)
  5295. F000:9C56  58                    pop    ax
  5296. F000:9C57  74 C8                jz    loc_419            ; Jump if zero
  5297. F000:9C59  E8 0414                call    sub_80            ; (A070)
  5298. F000:9C5C  74 06                jz    short loc_424        ; Jump if zero
  5299. F000:9C5E  08 26 0096                or    keybd_flags_3,ah    ; (0040:0096=10h)
  5300. F000:9C62  EB BD                jmp    short loc_419        ; (9C21)
  5301. F000:9C64            loc_424:                    ;  xref F000:9C5C
  5302. F000:9C64  C0 EC 02                shr    ah,2            ; Shift w/zeros fill
  5303. F000:9C67  08 26 0018                or    keybd_flags_2,ah    ; (0040:0018=0)
  5304. F000:9C6B  EB B4                jmp    short loc_419        ; (9C21)
  5305. F000:9C6D            loc_425:                    ;  xref F000:9C4C
  5306. F000:9C6D  22 C0                and    al,al
  5307. F000:9C6F  74 B0                jz    loc_419            ; Jump if zero
  5308. F000:9C71  3C 58                cmp    al,58h            ; 'X'
  5309. F000:9C73  77 AC                ja    loc_419            ; Jump if above
  5310. F000:9C75  3C 54                cmp    al,54h            ; 'T'
  5311.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 91
  5312.  
  5313. F000:9C77  75 1D                jne    short loc_427        ; Jump if not equal
  5314. F000:9C79  F6 06 0018 04            test    keybd_flags_2,4        ; (0040:0018=0)
  5315. F000:9C7E  75 A1                jnz    loc_419            ; Jump if not zero
  5316. F000:9C80  80 0E 0018 04            or    keybd_flags_2,4        ; (0040:0018=0)
  5317. F000:9C85  B8 8500                mov    ax,8500h
  5318. F000:9C88            loc_426:                    ;  xref F000:9BD5
  5319. F000:9C88  50                    push    ax
  5320. F000:9C89  B0 20                mov    al,20h            ; ' '
  5321. F000:9C8B  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5322.                                         ;  al = 20h, end of interrupt
  5323. F000:9C8D  E8 0271                call    sub_68            ; (9F01)
  5324. F000:9C90  58                    pop    ax
  5325. F000:9C91  CD 15                int    15h            ; General services, ah=func 85h
  5326.                                         ;  get system request key state
  5327. F000:9C93  E9 01F0                jmp    loc_471            ; (9E86)
  5328. F000:9C96            loc_427:                    ;  xref F000:9C77
  5329. F000:9C96  F6 06 0017 08            test    keybd_flags_1,8        ; (0040:0017=80h)
  5330. F000:9C9B  74 0C                jz    short loc_428        ; Jump if zero
  5331. F000:9C9D  E8 03CA                call    sub_79            ; (A06A)
  5332. F000:9CA0  74 0A                jz    short loc_429        ; Jump if zero
  5333. F000:9CA2  F6 06 0018 04            test    keybd_flags_2,4        ; (0040:0018=0)
  5334. F000:9CA7  74 03                jz    short loc_429        ; Jump if zero
  5335. F000:9CA9            loc_428:                    ;  xref F000:9C9B
  5336. F000:9CA9  EB 79                jmp    short loc_441        ; (9D24)
  5337. F000:9CAB  90                    db    90h
  5338. F000:9CAC            loc_429:                    ;  xref F000:9CA0, 9CA7
  5339. F000:9CAC  F6 06 0017 04            test    keybd_flags_1,4        ; (0040:0017=80h)
  5340. F000:9CB1  74 12                jz    short loc_431        ; Jump if zero
  5341. F000:9CB3  3C 53                cmp    al,53h            ; 'S'
  5342. F000:9CB5  75 09                jne    short loc_430        ; Jump if not equal
  5343. F000:9CB7  C7 06 0072 1234            mov    warm_boot_flag,1234h    ; (0040:0072=1200h)
  5344. F000:9CBD  E9 439B                jmp    loc_1197        ; (E05B)
  5345. F000:9CC0            loc_430:                    ;  xref F000:9CB5
  5346. F000:9CC0  E8 4BCB                call    sub_234            ; (E88E)
  5347. F000:9CC3  EB 03                jmp    short loc_432        ; (9CC8)
  5348. F000:9CC5            loc_431:                    ;  xref F000:9CB1
  5349. F000:9CC5  E8 01C4                call    sub_61            ; (9E8C)
  5350. F000:9CC8            loc_432:                    ;  xref F000:9CC3
  5351. F000:9CC8  E8 01DA                call    sub_62            ; (9EA5)
  5352. F000:9CCB  BB 9900                mov    bx,9900h
  5353. F000:9CCE  E8 01E7                call    sub_63            ; (9EB8)
  5354. F000:9CD1  E8 039C                call    sub_80            ; (A070)
  5355. F000:9CD4  74 1D                jz    short loc_435        ; Jump if zero
  5356. F000:9CD6  C6 06 0019 00            mov    keybd_alt_num,0        ; (0040:0019=0)
  5357. F000:9CDB  80 FC 1C                cmp    ah,1Ch
  5358. F000:9CDE  75 04                jne    short loc_433        ; Jump if not equal
  5359. F000:9CE0  B0 A6                mov    al,0A6h
  5360. F000:9CE2  EB 39                jmp    short loc_438        ; (9D1D)
  5361. F000:9CE4            loc_433:                    ;  xref F000:9CDE
  5362. F000:9CE4  80 FC 35                cmp    ah,35h            ; '5'
  5363. F000:9CE7  75 04                jne    short loc_434        ; Jump if not equal
  5364. F000:9CE9  B0 A4                mov    al,0A4h
  5365. F000:9CEB  EB 30                jmp    short loc_438        ; (9D1D)
  5366. F000:9CED            loc_434:                    ;  xref F000:9CE7
  5367. F000:9CED  8A C4                mov    al,ah
  5368. F000:9CEF  04 50                add    al,50h            ; 'P'
  5369. F000:9CF1  EB 2A                jmp    short loc_438        ; (9D1D)
  5370.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 92
  5371.  
  5372. F000:9CF3            loc_435:                    ;  xref F000:9CD4
  5373. F000:9CF3  3C 0A                cmp    al,0Ah
  5374. F000:9CF5  73 13                jae    short loc_437        ; Jump if above or =
  5375. F000:9CF7  8A 26 0019                mov    ah,keybd_alt_num    ; (0040:0019=0)
  5376. F000:9CFB  D0 E4                shl    ah,1            ; Shift w/zeros fill
  5377. F000:9CFD  02 C4                add    al,ah
  5378. F000:9CFF  C0 E4 02                shl    ah,2            ; Shift w/zeros fill
  5379. F000:9D02  02 C4                add    al,ah
  5380. F000:9D04  A2 0019                mov    keybd_alt_num,al    ; (0040:0019=0)
  5381. F000:9D07            loc_436:                    ;  xref F000:9D12, 9D3F, 9D74
  5382. F000:9D07  E9 016F                jmp    loc_468            ; (9E79)
  5383. F000:9D0A            loc_437:                    ;  xref F000:9CF5
  5384. F000:9D0A  C6 06 0019 00            mov    keybd_alt_num,0        ; (0040:0019=0)
  5385. F000:9D0F  80 FC 53                cmp    ah,53h            ; 'S'
  5386. F000:9D12  74 F3                je    loc_436            ; Jump if equal
  5387. F000:9D14  80 FC 39                cmp    ah,39h            ; '9'
  5388. F000:9D17  74 08                je    short loc_440        ; Jump if equal
  5389. F000:9D19  3C F0                cmp    al,0F0h
  5390. F000:9D1B  74 04                je    short loc_440        ; Jump if equal
  5391. F000:9D1D            loc_438:                    ;  xref F000:9CE2, 9CEB, 9CF1, 9D9E
  5392. F000:9D1D  B4 00                mov    ah,0
  5393. F000:9D1F            loc_439:                    ;  xref F000:9DC5
  5394. F000:9D1F  86 C4                xchg    al,ah
  5395. F000:9D21            loc_440:                    ;  xref F000:9D17, 9D1B, 9D8B
  5396. F000:9D21  E9 0258                jmp    loc_489            ; (9F7C)
  5397. F000:9D24            loc_441:                    ;  xref F000:9CA9
  5398. F000:9D24  F6 06 0017 04            test    keybd_flags_1,4        ; (0040:0017=80h)
  5399. F000:9D29  75 03                jnz    short loc_442        ; Jump if not zero
  5400. F000:9D2B  E9 009A                jmp    loc_454            ; (9DC8)
  5401. F000:9D2E            loc_442:                    ;  xref F000:9D29
  5402. F000:9D2E  E8 0174                call    sub_62            ; (9EA5)
  5403. F000:9D31  BB 9980                mov    bx,9980h
  5404. F000:9D34  E8 0181                call    sub_63            ; (9EB8)
  5405. F000:9D37  80 FC 45                cmp    ah,45h            ; 'E'
  5406. F000:9D3A  75 2B                jne    short loc_445        ; Jump if not equal
  5407. F000:9D3C  E8 032B                call    sub_79            ; (A06A)
  5408. F000:9D3F  75 C6                jnz    loc_436            ; Jump if not zero
  5409. F000:9D41            loc_443:                    ;  xref F000:9C3C
  5410. F000:9D41  80 0E 0018 08            or    keybd_flags_2,8        ; (0040:0018=0)
  5411. F000:9D46  E8 01B8                call    sub_68            ; (9F01)
  5412. F000:9D49  B0 20                mov    al,20h            ; ' '
  5413. F000:9D4B  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5414.                                         ;  al = 20h, end of interrupt
  5415. F000:9D4D  80 3E 0049 07            cmp    video_mode,7        ; (0040:0049=3)
  5416. F000:9D52  74 09                je    short loc_444        ; Jump if equal
  5417. F000:9D54  A0 0065                mov    al,video_mode_reg    ; (0040:0065=29h)
  5418. F000:9D57  52                    push    dx
  5419. F000:9D58  BA 03D8                mov    dx,3D8h
  5420. F000:9D5B  EE                    out    dx,al            ; port 3D8h, CGA video control
  5421. F000:9D5C  5A                    pop    dx
  5422. F000:9D5D            loc_444:                    ;  xref F000:9D52, 9D62
  5423. F000:9D5D  F6 06 0018 08            test    keybd_flags_2,8        ; (0040:0018=0)
  5424. F000:9D62  75 F9                jnz    loc_444            ; Jump if not zero
  5425. F000:9D64  E9 011C                jmp    loc_470            ; (9E83)
  5426. F000:9D67            loc_445:                    ;  xref F000:9D3A
  5427. F000:9D67  80 FC 46                cmp    ah,46h            ; 'F'
  5428. F000:9D6A  75 21                jne    short loc_449        ; Jump if not equal
  5429.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 93
  5430.  
  5431. F000:9D6C  E8 02FB                call    sub_79            ; (A06A)
  5432. F000:9D6F  74 05                jz    short loc_447        ; Jump if zero
  5433. F000:9D71  E8 02FC                call    sub_80            ; (A070)
  5434. F000:9D74            loc_446:                    ;  xref F000:9DB3
  5435. F000:9D74  74 91                jz    loc_436            ; Jump if zero
  5436. F000:9D76            loc_447:                    ;  xref F000:9D6F
  5437. F000:9D76  A1 0080                mov    ax,@keybd_begin        ; (0040:0080=1Eh)
  5438. F000:9D79  A3 001A                mov    keybd_q_head,ax        ; (0040:001A=24h)
  5439. F000:9D7C  A3 001C                mov    keybd_q_tail,ax        ; (0040:001C=24h)
  5440. F000:9D7F  C6 06 0071 80            mov    keybd_break,80h        ; (0040:0071=0)
  5441. F000:9D84  E8 017A                call    sub_68            ; (9F01)
  5442. F000:9D87  CD 1B                int    1Bh            ; Keyboard break (cntrl-break)
  5443. F000:9D89  33 C0                xor    ax,ax            ; Zero register
  5444. F000:9D8B            loc_448:                    ;  xref F000:9DAE, 9DB5, 9DC3
  5445. F000:9D8B  EB 94                jmp    short loc_440        ; (9D21)
  5446. F000:9D8D            loc_449:                    ;  xref F000:9D6A
  5447. F000:9D8D  80 FC 37                cmp    ah,37h            ; '7'
  5448. F000:9D90  75 0F                jne    short loc_452        ; Jump if not equal
  5449. F000:9D92  E8 02D5                call    sub_79            ; (A06A)
  5450. F000:9D95  74 05                jz    short loc_450        ; Jump if zero
  5451. F000:9D97  E8 02D6                call    sub_80            ; (A070)
  5452. F000:9D9A  74 02                jz    short loc_451        ; Jump if zero
  5453. F000:9D9C            loc_450:                    ;  xref F000:9D95
  5454. F000:9D9C  B0 72                mov    al,72h            ; 'r'
  5455. F000:9D9E            loc_451:                    ;  xref F000:9D9A, 9DA9, 9DB7, 9DBC
  5456. F000:9D9E  E9 FF7C                jmp    loc_438            ; (9D1D)
  5457. F000:9DA1            loc_452:                    ;  xref F000:9D90
  5458. F000:9DA1  E8 02CC                call    sub_80            ; (A070)
  5459. F000:9DA4  75 13                jnz    short loc_453        ; Jump if not zero
  5460. F000:9DA6  80 FC 0F                cmp    ah,0Fh
  5461. F000:9DA9  74 F3                je    loc_451            ; Jump if equal
  5462. F000:9DAB  80 FC 39                cmp    ah,39h            ; '9'
  5463. F000:9DAE  74 DB                je    loc_448            ; Jump if equal
  5464. F000:9DB0  80 FC 35                cmp    ah,35h            ; '5'
  5465. F000:9DB3  74 BF                je    loc_446            ; Jump if equal
  5466. F000:9DB5  72 D4                jc    loc_448            ; Jump if carry Set
  5467. F000:9DB7  EB E5                jmp    short loc_451        ; (9D9E)
  5468. F000:9DB9            loc_453:                    ;  xref F000:9DA4
  5469. F000:9DB9  80 FC 35                cmp    ah,35h            ; '5'
  5470. F000:9DBC  74 E0                je    loc_451            ; Jump if equal
  5471. F000:9DBE  80 FC 1C                cmp    ah,1Ch
  5472. F000:9DC1  B4 E0                mov    ah,0E0h
  5473. F000:9DC3  74 C6                jz    loc_448            ; Jump if zero
  5474. F000:9DC5  E9 FF57                jmp    loc_439            ; (9D1F)
  5475. F000:9DC8            loc_454:                    ;  xref F000:9D2B
  5476. F000:9DC8  E8 00C1                call    sub_61            ; (9E8C)
  5477. F000:9DCB  3C 52                cmp    al,52h            ; 'R'
  5478. F000:9DCD  74 03                je    short loc_455        ; Jump if equal
  5479. F000:9DCF  E8 00D3                call    sub_62            ; (9EA5)
  5480. F000:9DD2            loc_455:                    ;  xref F000:9DCD
  5481. F000:9DD2  3C 37                cmp    al,37h            ; '7'
  5482. F000:9DD4  75 26                jne    short loc_458        ; Jump if not equal
  5483. F000:9DD6  E8 0291                call    sub_79            ; (A06A)
  5484. F000:9DD9  74 07                jz    short loc_456        ; Jump if zero
  5485. F000:9DDB  E8 0292                call    sub_80            ; (A070)
  5486. F000:9DDE  74 1C                jz    short loc_458        ; Jump if zero
  5487. F000:9DE0  EB 07                jmp    short loc_457        ; (9DE9)
  5488.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 94
  5489.  
  5490. F000:9DE2            loc_456:                    ;  xref F000:9DD9
  5491. F000:9DE2  F6 06 0017 03            test    keybd_flags_1,3        ; (0040:0017=80h)
  5492. F000:9DE7  74 13                jz    short loc_458        ; Jump if zero
  5493. F000:9DE9            loc_457:                    ;  xref F000:9DE0
  5494. F000:9DE9  E8 0115                call    sub_68            ; (9F01)
  5495. F000:9DEC  B0 20                mov    al,20h            ; ' '
  5496. F000:9DEE  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5497.                                         ;  al = 20h, end of interrupt
  5498. F000:9DF0  55                    push    bp
  5499. F000:9DF1  CD 05                int    5            ; Print screen (status at 50:0h)
  5500. F000:9DF3  5D                    pop    bp
  5501. F000:9DF4  80 26 0096 FC            and    keybd_flags_3,0FCh    ; (0040:0096=10h)
  5502. F000:9DF9  E9 0087                jmp    loc_470            ; (9E83)
  5503. F000:9DFC            loc_458:                    ;  xref F000:9DD4, 9DDE, 9DE7
  5504. F000:9DFC  E8 0271                call    sub_80            ; (A070)
  5505. F000:9DFF  75 09                jnz    short loc_459        ; Jump if not zero
  5506. F000:9E01  F6 06 0017 03            test    keybd_flags_1,3        ; (0040:0017=80h)
  5507. F000:9E06  74 34                jz    short loc_464        ; Jump if zero
  5508. F000:9E08  EB 18                jmp    short loc_463        ; (9E22)
  5509. F000:9E0A            loc_459:                    ;  xref F000:9DFF
  5510. F000:9E0A  3C 1C                cmp    al,1Ch
  5511. F000:9E0C  75 05                jne    short loc_460        ; Jump if not equal
  5512. F000:9E0E  B8 E00D                mov    ax,0E00Dh
  5513. F000:9E11  EB 07                jmp    short loc_461        ; (9E1A)
  5514. F000:9E13            loc_460:                    ;  xref F000:9E0C
  5515. F000:9E13  3C 35                cmp    al,35h            ; '5'
  5516. F000:9E15  75 06                jne    short loc_462        ; Jump if not equal
  5517. F000:9E17  B8 E02F                mov    ax,0E02Fh
  5518. F000:9E1A            loc_461:                    ;  xref F000:9E11
  5519. F000:9E1A  E9 015F                jmp    loc_489            ; (9F7C)
  5520. F000:9E1D            loc_462:                    ;  xref F000:9E15
  5521. F000:9E1D  BB 9A80                mov    bx,9A80h
  5522. F000:9E20  EB 31                jmp    short loc_465        ; (9E53)
  5523. F000:9E22            loc_463:                    ;  xref F000:9E08
  5524. F000:9E22  BB 9A00                mov    bx,9A00h
  5525. F000:9E25  F6 06 0017 20            test    keybd_flags_1,20h    ; (0040:0017=80h) ' '
  5526. F000:9E2A  74 2A                jz    short loc_466        ; Jump if zero
  5527. F000:9E2C  E8 0094                call    sub_64            ; (9EC3)
  5528. F000:9E2F  3C 46                cmp    al,46h            ; 'F'
  5529. F000:9E31  76 23                jbe    short loc_466        ; Jump if below or =
  5530. F000:9E33  3C 56                cmp    al,56h            ; 'V'
  5531. F000:9E35  73 1F                jae    short loc_466        ; Jump if above or =
  5532. F000:9E37  BB 9A80                mov    bx,9A80h
  5533. F000:9E3A  EB 1A                jmp    short loc_466        ; (9E56)
  5534. F000:9E3C            loc_464:                    ;  xref F000:9E06
  5535. F000:9E3C  BB 9A80                mov    bx,9A80h
  5536. F000:9E3F  F6 06 0017 20            test    keybd_flags_1,20h    ; (0040:0017=80h) ' '
  5537. F000:9E44  74 0D                jz    short loc_465        ; Jump if zero
  5538. F000:9E46  3C 46                cmp    al,46h            ; 'F'
  5539. F000:9E48  76 0C                jbe    short loc_466        ; Jump if below or =
  5540. F000:9E4A  3C 56                cmp    al,56h            ; 'V'
  5541. F000:9E4C  73 08                jae    short loc_466        ; Jump if above or =
  5542. F000:9E4E  BB 9A00                mov    bx,9A00h
  5543. F000:9E51  EB 03                jmp    short loc_466        ; (9E56)
  5544. F000:9E53            loc_465:                    ;  xref F000:9E20, 9E44
  5545. F000:9E53  E8 006D                call    sub_64            ; (9EC3)
  5546. F000:9E56            loc_466:                    ;  xref F000:9E2A, 9E31, 9E35, 9E3A
  5547.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 95
  5548.  
  5549.                                         ;            9E48, 9E4C, 9E51
  5550. F000:9E56  E8 005F                call    sub_63            ; (9EB8)
  5551. F000:9E59  80 FC 3A                cmp    ah,3Ah            ; ':'
  5552. F000:9E5C  76 18                jbe    short loc_467        ; Jump if below or =
  5553. F000:9E5E  3C 3A                cmp    al,3Ah            ; ':'
  5554. F000:9E60  76 14                jbe    short loc_467        ; Jump if below or =
  5555. F000:9E62  3C F0                cmp    al,0F0h
  5556. F000:9E64  74 10                je    short loc_467        ; Jump if equal
  5557. F000:9E66  80 FC 56                cmp    ah,56h            ; 'V'
  5558. F000:9E69  74 0B                je    short loc_467        ; Jump if equal
  5559. F000:9E6B  8A E0                mov    ah,al
  5560. F000:9E6D  B0 00                mov    al,0
  5561. F000:9E6F  E8 01FE                call    sub_80            ; (A070)
  5562. F000:9E72  74 02                jz    short loc_467        ; Jump if zero
  5563. F000:9E74  B0 E0                mov    al,0E0h
  5564. F000:9E76            loc_467:                    ;  xref F000:9E5C, 9E60, 9E64, 9E69
  5565.                                         ;            9E72
  5566. F000:9E76  E9 00DF                jmp    loc_487            ; (9F58)
  5567. F000:9E79            loc_468:                    ;  xref F000:9C21, 9D07, 9EA2, 9EB5
  5568.                                         ;            9EC0, 9ECC
  5569. F000:9E79  80 26 0096 FC            and    keybd_flags_3,0FCh    ; (0040:0096=10h)
  5570. F000:9E7E            loc_469:                    ;  xref F000:9C24
  5571. F000:9E7E  FA                    cli                ; Disable interrupts
  5572. F000:9E7F  B0 20                mov    al,20h            ; ' '
  5573. F000:9E81  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5574.                                         ;  al = 20h, end of interrupt
  5575. F000:9E83            loc_470:                    ;  xref F000:9B40, 9D64, 9DF9, 9F8D
  5576. F000:9E83  E8 007B                call    sub_68            ; (9F01)
  5577. F000:9E86            loc_471:                    ;  xref F000:9C93, 9FA9
  5578. F000:9E86  FA                    cli                ; Disable interrupts
  5579. F000:9E87  8B E5                mov    sp,bp
  5580. F000:9E89  1F                    pop    ds
  5581. F000:9E8A  61                    popa                ; Restore all regs
  5582. F000:9E8B  CF                    iret                ; Interrupt return
  5583.   
  5584.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5585.                 ;                   SUBROUTINE
  5586.                 ;
  5587.                 ;         Called from:     F000:9CC5, 9DC8
  5588.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5589.   
  5590.                 sub_61        proc    near
  5591. F000:9E8C  E8 004A                call    sub_65            ; (9ED9)
  5592. F000:9E8F  75 13                jnz    short loc_ret_473    ; Jump if not zero
  5593. F000:9E91  84 26 0018                test    ah,keybd_flags_2    ; (0040:0018=0)
  5594. F000:9E95  75 0B                jnz    short loc_472        ; Jump if not zero
  5595. F000:9E97  08 26 0018                or    keybd_flags_2,ah    ; (0040:0018=0)
  5596. F000:9E9B  30 26 0017                xor    keybd_flags_1,ah    ; (0040:0017=80h)
  5597. F000:9E9F  E8 011C                call    sub_73            ; (9FBE)
  5598. F000:9EA2            loc_472:                    ;  xref F000:9E95
  5599. F000:9EA2  EB D5                jmp    short loc_468        ; (9E79)
  5600.   
  5601. F000:9EA4            loc_ret_473:                    ;  xref F000:9E8F
  5602. F000:9EA4  C3                    retn
  5603.                 sub_61        endp
  5604.   
  5605.   
  5606.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 96
  5607.  
  5608.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5609.                 ;                   SUBROUTINE
  5610.                 ;
  5611.                 ;         Called from:     F000:9CC8, 9D2E, 9DCF
  5612.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5613.   
  5614.                 sub_62        proc    near
  5615. F000:9EA5  F6 06 0018 08            test    keybd_flags_2,8        ; (0040:0018=0)
  5616. F000:9EAA  74 0B                jz    short loc_ret_475    ; Jump if zero
  5617. F000:9EAC  3C 45                cmp    al,45h            ; 'E'
  5618. F000:9EAE  74 05                je    short loc_474        ; Jump if equal
  5619. F000:9EB0  80 26 0018 F7            and    keybd_flags_2,0F7h    ; (0040:0018=0)
  5620. F000:9EB5            loc_474:                    ;  xref F000:9EAE
  5621. F000:9EB5  EB C2                jmp    short loc_468        ; (9E79)
  5622.   
  5623. F000:9EB7            loc_ret_475:                    ;  xref F000:9EAA
  5624. F000:9EB7  C3                    retn
  5625.                 sub_62        endp
  5626.   
  5627.   
  5628.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5629.                 ;                   SUBROUTINE
  5630.                 ;
  5631.                 ;         Called from:     F000:9CCE, 9D34, 9E56
  5632.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5633.   
  5634.                 sub_63        proc    near
  5635. F000:9EB8  8A E0                mov    ah,al
  5636. F000:9EBA  FE C8                dec    al
  5637. F000:9EBC  2E: D7                xlat cs:[bx]            ; al=[al+[bx]] table
  5638. F000:9EBE  3C FF                cmp    al,0FFh
  5639. F000:9EC0  74 B7                je    loc_468            ; Jump if equal
  5640. F000:9EC2  C3                    retn
  5641.                 sub_63        endp
  5642.   
  5643.   
  5644.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5645.                 ;                   SUBROUTINE
  5646.                 ;
  5647.                 ;         Called from:     F000:9E2C, 9E53
  5648.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5649.   
  5650.                 sub_64        proc    near
  5651. F000:9EC3  3C 52                cmp    al,52h            ; 'R'
  5652. F000:9EC5  75 11                jne    short loc_ret_476    ; Jump if not equal
  5653. F000:9EC7  F6 06 0018 80            test    keybd_flags_2,80h    ; (0040:0018=0)
  5654. F000:9ECC  75 AB                jnz    loc_468            ; Jump if not zero
  5655. F000:9ECE  80 0E 0018 80            or    keybd_flags_2,80h    ; (0040:0018=0)
  5656. F000:9ED3  80 36 0017 80            xor    keybd_flags_1,80h    ; (0040:0017=80h)
  5657.   
  5658. F000:9ED8            loc_ret_476:                    ;  xref F000:9EC5
  5659. F000:9ED8  C3                    retn
  5660.                 sub_64        endp
  5661.   
  5662.   
  5663.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5664.                 ;                   SUBROUTINE
  5665.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 97
  5666.  
  5667.                 ;
  5668.                 ;         Called from:     F000:9BB6, 9E8C
  5669.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5670.   
  5671.                 sub_65        proc    near
  5672. F000:9ED9  B4 40                mov    ah,40h            ; '@'
  5673. F000:9EDB  3C 3A                cmp    al,3Ah            ; ':'
  5674. F000:9EDD  74 0A                je    short loc_ret_477    ; Jump if equal
  5675. F000:9EDF  B4 20                mov    ah,20h            ; ' '
  5676. F000:9EE1  3C 45                cmp    al,45h            ; 'E'
  5677. F000:9EE3  74 04                je    short loc_ret_477    ; Jump if equal
  5678. F000:9EE5  B4 10                mov    ah,10h
  5679. F000:9EE7  3C 46                cmp    al,46h            ; 'F'
  5680.   
  5681. F000:9EE9            loc_ret_477:                    ;  xref F000:9EDD, 9EE3
  5682. F000:9EE9  C3                    retn
  5683.                 sub_65        endp
  5684.   
  5685.   
  5686.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5687.                 ;                   SUBROUTINE
  5688.                 ;
  5689.                 ;         Called from:     F000:9BA5, 9BD8, 9C2C, 9C49
  5690.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5691.   
  5692.                 sub_66        proc    near
  5693. F000:9EEA  B4 08                mov    ah,8
  5694. F000:9EEC  3C 38                cmp    al,38h            ; '8'
  5695. F000:9EEE  74 10                je    short loc_ret_478    ; Jump if equal
  5696. F000:9EF0  B4 04                mov    ah,4
  5697. F000:9EF2  3C 1D                cmp    al,1Dh
  5698. F000:9EF4  74 0A                je    short loc_ret_478    ; Jump if equal
  5699.   
  5700.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5701.                 ;
  5702.                 ;         Called from:     F000:9BB1, 9BE4, 9C44, 9C53
  5703.   
  5704.                 sub_67:
  5705. F000:9EF6  B4 02                mov    ah,2
  5706. F000:9EF8  3C 2A                cmp    al,2Ah            ; '*'
  5707. F000:9EFA  74 04                je    short loc_ret_478    ; Jump if equal
  5708. F000:9EFC  B4 01                mov    ah,1
  5709. F000:9EFE  3C 36                cmp    al,36h            ; '6'
  5710.   
  5711. F000:9F00            loc_ret_478:                    ;  xref F000:9EEE, 9EF4, 9EFA
  5712. F000:9F00  C3                    retn
  5713.                 sub_66        endp
  5714.   
  5715.   
  5716.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5717.                 ;                   SUBROUTINE
  5718.                 ;
  5719.                 ;         Called from:     F000:9C8D, 9D46, 9D84, 9DE9, 9E83, 9F9C, A0ED
  5720.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5721.   
  5722.                 sub_68        proc    near
  5723. F000:9F01  E8 0013                call    sub_70            ; (9F17)
  5724.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 98
  5725.  
  5726. F000:9F04  B0 AE                mov    al,0AEh
  5727. F000:9F06  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  5728.                                         ;  al = 0AEh, enable keyboard
  5729. F000:9F08  FB                    sti                ; Enable interrupts
  5730. F000:9F09  C3                    retn
  5731.                 sub_68        endp
  5732.   
  5733.   
  5734.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5735.                 ;                   SUBROUTINE
  5736.                 ;
  5737.                 ;         Called from:     F000:9B09, A0DF
  5738.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5739.   
  5740.                 sub_69        proc    near
  5741. F000:9F0A  E8 000A                call    sub_70            ; (9F17)
  5742. F000:9F0D  B0 AD                mov    al,0ADh
  5743. F000:9F0F  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  5744.                                         ;  al = 0ADh, disable keyboard
  5745. F000:9F11  E8 0003                call    sub_70            ; (9F17)
  5746. F000:9F14  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  5747. F000:9F16  C3                    retn
  5748.                 sub_69        endp
  5749.   
  5750.   
  5751.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5752.                 ;                   SUBROUTINE
  5753.                 ;
  5754.                 ;         Called from:     F000:9F01, 9F0A, 9F11, A007, E8D6
  5755.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5756.   
  5757.                 sub_70        proc    near
  5758. F000:9F17  FA                    cli                ; Disable interrupts
  5759. F000:9F18  33 C9                xor    cx,cx            ; Zero register
  5760.   
  5761. F000:9F1A            locloop_479:                    ;  xref F000:9F20
  5762. F000:9F1A  EB 00                jmp    short loc_480        ; (9F1C)
  5763. F000:9F1C            loc_480:                    ;  xref F000:9F1A
  5764. F000:9F1C  E4 64                in    al,64h            ; port 64h, keyboard status
  5765. F000:9F1E  A8 02                test    al,2
  5766. F000:9F20  E0 F8                loopnz    locloop_479        ; Loop if zf=0, cx>0
  5767.   
  5768. F000:9F22  74 08                jz    short loc_ret_483    ; Jump if zero
  5769.   
  5770. F000:9F24            locloop_481:                    ;  xref F000:9F2A
  5771. F000:9F24  EB 00                jmp    short loc_482        ; (9F26)
  5772. F000:9F26            loc_482:                    ;  xref F000:9F24
  5773. F000:9F26  E4 64                in    al,64h            ; port 64h, keyboard status
  5774. F000:9F28  A8 02                test    al,2
  5775. F000:9F2A  E0 F8                loopnz    locloop_481        ; Loop if zf=0, cx>0
  5776.   
  5777.   
  5778. F000:9F2C            loc_ret_483:                    ;  xref F000:9F22
  5779. F000:9F2C  C3                    retn
  5780.                 sub_70        endp
  5781.   
  5782.   
  5783.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 99
  5784.  
  5785.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5786.                 ;                   SUBROUTINE
  5787.                 ;
  5788.                 ;         Called from:     F000:9B3D, 9F8A
  5789.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5790.   
  5791.                 sub_71        proc    near
  5792. F000:9F2D  B0 20                mov    al,20h            ; ' '
  5793. F000:9F2F  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5794.                                         ;  al = 20h, end of interrupt
  5795. F000:9F31  BB 00D0                mov    bx,0D0h
  5796. F000:9F34  B9 0030                mov    cx,30h
  5797. F000:9F37  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  5798. F000:9F39  8A E0                mov    ah,al
  5799. F000:9F3B  24 FE                and    al,0FEh
  5800. F000:9F3D  EB 00                jmp    short locloop_484    ; (9F3F)
  5801.   
  5802. F000:9F3F            locloop_484:                    ;  xref F000:9F3D, 9F51
  5803. F000:9F3F  51                    push    cx
  5804. F000:9F40  0C 02                or    al,2
  5805. F000:9F42  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  5806. F000:9F44  8B CB                mov    cx,bx
  5807.   
  5808. F000:9F46            locloop_485:                    ;  xref F000:9F46
  5809. F000:9F46  E2 FE                loop    locloop_485        ; Loop if cx > 0
  5810.   
  5811. F000:9F48  24 FD                and    al,0FDh
  5812. F000:9F4A  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  5813. F000:9F4C  8B CB                mov    cx,bx
  5814.   
  5815. F000:9F4E            locloop_486:                    ;  xref F000:9F4E
  5816. F000:9F4E  E2 FE                loop    locloop_486        ; Loop if cx > 0
  5817.   
  5818. F000:9F50  59                    pop    cx
  5819. F000:9F51  E2 EC                loop    locloop_484        ; Loop if cx > 0
  5820.   
  5821. F000:9F53  8A C4                mov    al,ah
  5822. F000:9F55  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  5823. F000:9F57  C3                    retn
  5824.                 sub_71        endp
  5825.   
  5826. F000:9F58            loc_487:                    ;  xref F000:9E76
  5827. F000:9F58  F6 06 0017 40            test    keybd_flags_1,40h    ; (0040:0017=80h) '@'
  5828. F000:9F5D  74 1D                jz    short loc_489        ; Jump if zero
  5829. F000:9F5F  F6 06 0017 03            test    keybd_flags_1,3        ; (0040:0017=80h)
  5830. F000:9F64  75 0C                jnz    short loc_488        ; Jump if not zero
  5831. F000:9F66  3C 7A                cmp    al,7Ah            ; 'z'
  5832. F000:9F68  77 12                ja    short loc_489        ; Jump if above
  5833. F000:9F6A  3C 61                cmp    al,61h            ; 'a'
  5834. F000:9F6C  72 0E                jb    short loc_489        ; Jump if below
  5835. F000:9F6E  2C 20                sub    al,20h            ; ' '
  5836. F000:9F70  EB 0A                jmp    short loc_489        ; (9F7C)
  5837. F000:9F72            loc_488:                    ;  xref F000:9F64
  5838. F000:9F72  3C 5A                cmp    al,5Ah            ; 'Z'
  5839. F000:9F74  77 06                ja    short loc_489        ; Jump if above
  5840. F000:9F76  3C 41                cmp    al,41h            ; 'A'
  5841. F000:9F78  72 02                jb    short loc_489        ; Jump if below
  5842.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 100
  5843.  
  5844. F000:9F7A  04 20                add    al,20h            ; ' '
  5845. F000:9F7C            loc_489:                    ;  xref F000:9C1E, 9D21, 9E1A, 9F5D
  5846.                                         ;            9F68, 9F6C, 9F70, 9F74
  5847.                                         ;            9F78
  5848. F000:9F7C  8B 1E 001C                mov    bx,keybd_q_tail        ; (0040:001C=24h)
  5849. F000:9F80  53                    push    bx
  5850. F000:9F81  E8 00B3                call    sub_76            ; (A037)
  5851. F000:9F84  3B 1E 001A                cmp    bx,keybd_q_head        ; (0040:001A=24h)
  5852. F000:9F88  75 06                jne    short loc_490        ; Jump if not equal
  5853. F000:9F8A  E8 FFA0                call    sub_71            ; (9F2D)
  5854. F000:9F8D  E9 FEF3                jmp    loc_470            ; (9E83)
  5855. F000:9F90            loc_490:                    ;  xref F000:9F88
  5856. F000:9F90  FA                    cli                ; Disable interrupts
  5857. F000:9F91  89 1E 001C                mov    keybd_q_tail,bx        ; (0040:001C=24h)
  5858. F000:9F95  5B                    pop    bx
  5859. F000:9F96  89 07                mov    [bx],ax
  5860. F000:9F98  B0 20                mov    al,20h            ; ' '
  5861. F000:9F9A  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5862.                                         ;  al = 20h, end of interrupt
  5863. F000:9F9C  E8 FF62                call    sub_68            ; (9F01)
  5864. F000:9F9F  B8 9102                mov    ax,9102h
  5865. F000:9FA2  CD 15                int    15h            ; General services, ah=func 91h
  5866.                                         ;  interrupt complete, al=type
  5867. F000:9FA4  80 26 0096 FC            and    keybd_flags_3,0FCh    ; (0040:0096=10h)
  5868. F000:9FA9  E9 FEDA                jmp    loc_471            ; (9E86)
  5869.   
  5870.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5871.                 ;                   SUBROUTINE
  5872.                 ;
  5873.                 ;         Called from:     F000:9B2C, 9FD9, A056
  5874.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5875.   
  5876.                 sub_72        proc    near
  5877. F000:9FAC  A0 0017                mov    al,keybd_flags_1    ; (0040:0017=80h)
  5878. F000:9FAF  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  5879. F000:9FB2  24 07                and    al,7
  5880. F000:9FB4  8A E0                mov    ah,al
  5881. F000:9FB6  32 26 0097                xor    ah,keybd_flags_4    ; (0040:0097=10h)
  5882. F000:9FBA  80 E4 07                and    ah,7
  5883. F000:9FBD  C3                    retn
  5884.                 sub_72        endp
  5885.   
  5886.   
  5887.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5888.                 ;                   SUBROUTINE
  5889.                 ;
  5890.                 ;         Called from:     F000:9B31, 9B75, 9E9F
  5891.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5892.   
  5893.                 sub_73        proc    near
  5894. F000:9FBE  FA                    cli                ; Disable interrupts
  5895. F000:9FBF  F6 06 0097 40            test    keybd_flags_4,40h    ; (0040:0097=10h) '@'
  5896. F000:9FC4  75 0C                jnz    short loc_491        ; Jump if not zero
  5897. F000:9FC6  80 0E 0097 40            or    keybd_flags_4,40h    ; (0040:0097=10h) '@'
  5898. F000:9FCB  B0 20                mov    al,20h            ; ' '
  5899. F000:9FCD  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  5900.                                         ;  al = 20h, end of interrupt
  5901.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 101
  5902.  
  5903. F000:9FCF  E8 0002                call    sub_74            ; (9FD4)
  5904. F000:9FD2            loc_491:                    ;  xref F000:9FC4
  5905. F000:9FD2  FB                    sti                ; Enable interrupts
  5906. F000:9FD3  C3                    retn
  5907.                 sub_73        endp
  5908.   
  5909.   
  5910.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5911.                 ;                   SUBROUTINE
  5912.                 ;
  5913.                 ;         Called from:     F000:9FCF, A051
  5914.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5915.   
  5916.                 sub_74        proc    near
  5917. F000:9FD4  B0 ED                mov    al,0EDh
  5918. F000:9FD6  E8 0028                call    sub_75            ; (A001)
  5919. F000:9FD9  E8 FFD0                call    sub_72            ; (9FAC)
  5920. F000:9FDC  80 26 0097 F8            and    keybd_flags_4,0F8h    ; (0040:0097=10h)
  5921. F000:9FE1  08 06 0097                or    keybd_flags_4,al    ; (0040:0097=10h)
  5922. F000:9FE5  F6 06 0097 80            test    keybd_flags_4,80h    ; (0040:0097=10h)
  5923. F000:9FEA  75 0A                jnz    short loc_492        ; Jump if not zero
  5924. F000:9FEC  E8 0012                call    sub_75            ; (A001)
  5925. F000:9FEF  F6 06 0097 80            test    keybd_flags_4,80h    ; (0040:0097=10h)
  5926. F000:9FF4  74 05                jz    short loc_493        ; Jump if zero
  5927. F000:9FF6            loc_492:                    ;  xref F000:9FEA
  5928. F000:9FF6  B0 F4                mov    al,0F4h
  5929. F000:9FF8  E8 0006                call    sub_75            ; (A001)
  5930. F000:9FFB            loc_493:                    ;  xref F000:9FF4
  5931. F000:9FFB  80 26 0097 3F            and    keybd_flags_4,3Fh    ; (0040:0097=10h) '?'
  5932. F000:A000  C3                    retn
  5933.                 sub_74        endp
  5934.   
  5935.   
  5936.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5937.                 ;                   SUBROUTINE
  5938.                 ;
  5939.                 ;         Called from:     F000:96E2, 9FD6, 9FEC, 9FF8, A0E5, A0EA, A0F3
  5940.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5941.   
  5942.                 sub_75        proc    near
  5943. F000:A001  8A E0                mov    ah,al
  5944. F000:A003  B9 0003                mov    cx,3
  5945.   
  5946. F000:A006            locloop_494:                    ;  xref F000:A02D
  5947. F000:A006  51                    push    cx
  5948. F000:A007  E8 FF0D                call    sub_70            ; (9F17)
  5949. F000:A00A  8A C4                mov    al,ah
  5950. F000:A00C  E6 60                out    60h,al            ; port 60h, keybd data write
  5951. F000:A00E  80 26 0097 4F            and    byte ptr ds:data_60e,4Fh    ; (C000:0097=51h) 'O'
  5952. F000:A013  FB                    sti                ; Enable interrupts
  5953. F000:A014  33 C9                xor    cx,cx            ; Zero register
  5954.   
  5955. F000:A016            locloop_495:                    ;  xref F000:A01D
  5956. F000:A016  F6 06 0097 30            test    byte ptr ds:data_60e,30h    ; (C000:0097=51h) '0'
  5957. F000:A01B  75 09                jnz    short loc_497        ; Jump if not zero
  5958. F000:A01D  E2 F7                loop    locloop_495        ; Loop if cx > 0
  5959.   
  5960.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 102
  5961.  
  5962.   
  5963. F000:A01F            locloop_496:                    ;  xref F000:A024
  5964. F000:A01F  F6 06 0097 30            test    byte ptr ds:data_60e,30h    ; (C000:0097=51h) '0'
  5965. F000:A024  E1 F9                loopz    locloop_496        ; Loop if zf=1, cx>0
  5966.   
  5967. F000:A026            loc_497:                    ;  xref F000:A01B
  5968. F000:A026  FA                    cli                ; Disable interrupts
  5969. F000:A027  59                    pop    cx
  5970. F000:A028  F6 06 0097 10            test    byte ptr ds:data_60e,10h    ; (C000:0097=51h)
  5971. F000:A02D  E1 D7                loopz    locloop_494        ; Loop if zf=1, cx>0
  5972.   
  5973. F000:A02F  75 05                jnz    short loc_ret_498    ; Jump if not zero
  5974. F000:A031  80 0E 0097 80            or    byte ptr ds:data_60e,80h    ; (C000:0097=51h)
  5975.   
  5976. F000:A036            loc_ret_498:                    ;  xref F000:A02F
  5977. F000:A036  C3                    retn
  5978.                 sub_75        endp
  5979.   
  5980.   
  5981.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5982.                 ;                   SUBROUTINE
  5983.                 ;
  5984.                 ;         Called from:     F000:9F81, A0B4, A159
  5985.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5986.   
  5987.                 sub_76        proc    near
  5988. F000:A037  43                    inc    bx
  5989. F000:A038  43                    inc    bx
  5990. F000:A039  3B 1E 0082                cmp    bx,@keybd_end        ; (0040:0082=3Eh)
  5991. F000:A03D  75 04                jne    short loc_ret_499    ; Jump if not equal
  5992. F000:A03F  8B 1E 0080                mov    bx,@keybd_begin        ; (0040:0080=1Eh)
  5993.   
  5994. F000:A043            loc_ret_499:                    ;  xref F000:A03D
  5995. F000:A043  C3                    retn
  5996.                 sub_76        endp
  5997.   
  5998.   
  5999.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6000.                 ;                   SUBROUTINE
  6001.                 ;
  6002.                 ;         Called from:     F000:A05B
  6003.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6004.   
  6005.                 sub_77        proc    near
  6006. F000:A044  FA                    cli                ; Disable interrupts
  6007. F000:A045  F6 06 0097 40            test    keybd_flags_4,40h    ; (0040:0097=10h) '@'
  6008. F000:A04A  75 08                jnz    short loc_500        ; Jump if not zero
  6009. F000:A04C  80 0E 0097 40            or    keybd_flags_4,40h    ; (0040:0097=10h) '@'
  6010. F000:A051  E8 FF80                call    sub_74            ; (9FD4)
  6011. F000:A054            loc_500:                    ;  xref F000:A04A
  6012. F000:A054  FB                    sti                ; Enable interrupts
  6013. F000:A055  C3                    retn
  6014.                 sub_77        endp
  6015.   
  6016.   
  6017.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6018.                 ;                   SUBROUTINE
  6019.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 103
  6020.  
  6021.                 ;
  6022.                 ;         Called from:     F000:A125, A135, A154
  6023.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6024.   
  6025.                 sub_78        proc    near
  6026. F000:A056  E8 FF53                call    sub_72            ; (9FAC)
  6027. F000:A059  74 03                jz    short loc_501        ; Jump if zero
  6028. F000:A05B  E8 FFE6                call    sub_77            ; (A044)
  6029. F000:A05E            loc_501:                    ;  xref F000:A059
  6030. F000:A05E  FA                    cli                ; Disable interrupts
  6031. F000:A05F  8B 1E 001A                mov    bx,keybd_q_head        ; (0040:001A=24h)
  6032. F000:A063  3B 1E 001C                cmp    bx,keybd_q_tail        ; (0040:001C=24h)
  6033. F000:A067  8B 07                mov    ax,[bx]
  6034. F000:A069  C3                    retn
  6035.                 sub_78        endp
  6036.   
  6037.   
  6038.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6039.                 ;                   SUBROUTINE
  6040.                 ;
  6041.                 ;         Called from:     F000:9C9D, 9D3C, 9D6C, 9D92, 9DD6
  6042.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6043.   
  6044.                 sub_79        proc    near
  6045. F000:A06A  F6 06 0096 10            test    keybd_flags_3,10h    ; (0040:0096=10h)
  6046. F000:A06F  C3                    retn
  6047.                 sub_79        endp
  6048.   
  6049.   
  6050.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6051.                 ;                   SUBROUTINE
  6052.                 ;
  6053.                 ;         Called from:     F000:9BAC, 9BEA, 9C3F, 9C59, 9CD1, 9D71, 9D97
  6054.                 ;                  9DA1, 9DDB, 9DFC, 9E6F
  6055.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6056.   
  6057.                 sub_80        proc    near
  6058. F000:A070  F6 06 0096 02            test    keybd_flags_3,2        ; (0040:0096=10h)
  6059. F000:A075  C3                    retn
  6060.                 sub_80        endp
  6061.   
  6062.   
  6063.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6064.                 ;                   SUBROUTINE
  6065.                 ;
  6066.                 ;         Called from:     F000:9BA0, 9C27
  6067.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6068.   
  6069.                 sub_81        proc    near
  6070. F000:A076  F6 06 0096 01            test    keybd_flags_3,1        ; (0040:0096=10h)
  6071. F000:A07B  C3                    retn
  6072.                 sub_81        endp
  6073.   
  6074.   
  6075.   
  6076.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 16h ▒▒▒▒▒
  6077.                 ;
  6078.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 104
  6079.  
  6080.                 ;   KEYBOARD SERVICES
  6081.                 ;
  6082.                 ;      Call with:   ah = sub-function number
  6083.                 ;
  6084.                 ;      Functions:
  6085.                 ;        ah = 0        Get    a key, and wait until one is available if none are
  6086.                 ;              in the queue.
  6087.                 ;              Returns:    ah = keyboard scan code
  6088.                 ;                      al = ASCII character, or 0 if    non-ASCII
  6089.                 ;        ah = 1        Get    key status
  6090.                 ;              Returns:    zero flag = 0 if a valid key is in the queue
  6091.                 ;                          ah = keyboard scan code
  6092.                 ;                          al = ASCII character, or 0 if non-ASCII
  6093.                 ;                      zero flag = 1 if no keys in the queue
  6094.                 ;        ah = 2        Get    shift status register
  6095.                 ;              Returns:    al = bits  7    6    5    4     3    2    1    0
  6096.                 ;                               right left ctrl alt scrl  num  cap insrt
  6097.                 ;                               -------shifts------ ------toggles-------
  6098.                 ;                                     1 = down         1 = on
  6099.                 ;        ah = 3        Set    repeating character rate (not supported    in all systems)
  6100.                 ;              Call with:  al = 5
  6101.                 ;                      bh = start delay, 0 = 250 ms      2 =  750 ms
  6102.                 ;                                        1 = 500 ms      3 = 1000 ms
  6103.                 ;                      bl = speed in characters per second - values
  6104.                 ;                             range from 0 = 30 cps,    to 1Fh = 2 cps
  6105.                 ;        ah = 5        Load keyboard queue (not supported in all systems)
  6106.                 ;              Call with:  ch/cl = scan code/character to load into the queue
  6107.                 ;              Returns:    al = 0 if ok, 1 if keyboard queue is full
  6108.                 ;
  6109.                 ;             **** Support for extended keyboard functions ****
  6110.                 ;        ah = 10h   Get    a key (similar to ah = 0, not supported    in all systems)
  6111.                 ;        ah = 11h   Get    key status (similar to ah = 1, not supported in all systems)
  6112.                 ;        ah = 12h   Get    shift info (similar to ah = 2, not supported in all systems)
  6113.   
  6114. F000:A07C            int_16h_keybd    proc    near            ;  xref F000:E82E
  6115. F000:A07C  FB                    sti                ; Enable interrupts
  6116. F000:A07D  1E                    push    ds
  6117. F000:A07E  53                    push    bx
  6118. F000:A07F  51                    push    cx
  6119. F000:A080  6A 40                push    40h
  6120. F000:A082  1F                    pop    ds
  6121. F000:A083  80 EC 03                sub    ah,3
  6122. F000:A086  74 44                jz    short loc_506        ; Jump if zero
  6123. F000:A088  72 14                jc    short loc_502        ; Jump if carry Set
  6124. F000:A08A  80 EC 02                sub    ah,2
  6125. F000:A08D  74 1F                jz    short loc_504        ; Jump if zero
  6126. F000:A08F  80 EC 0B                sub    ah,0Bh
  6127. F000:A092  74 7F                jz    short loc_510        ; Jump if zero
  6128. F000:A094  FE CC                dec    ah
  6129. F000:A096  74 60                jz    short loc_507        ; Jump if zero
  6130. F000:A098  FE CC                dec    ah
  6131. F000:A09A  74 5E                jz    short loc_508        ; Jump if zero
  6132. F000:A09C  EB 0C                jmp    short loc_503        ; (A0AA)
  6133. F000:A09E            loc_502:                    ;  xref F000:A088
  6134. F000:A09E  FE C4                inc    ah
  6135. F000:A0A0  74 6C                jz    short loc_509        ; Jump if zero
  6136. F000:A0A2  FE C4                inc    ah
  6137.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 105
  6138.  
  6139. F000:A0A4  74 7F                jz    short loc_512        ; Jump if zero
  6140. F000:A0A6  FE C4                inc    ah
  6141. F000:A0A8  EB 71                jmp    short loc_511        ; (A11B)
  6142. F000:A0AA            loc_503:                    ;  xref F000:A09C, A0CA, A0CF, A0D4
  6143.                                         ;            A0D8, A0F6, A111, A119
  6144.                                         ;            A123
  6145. F000:A0AA  59                    pop    cx
  6146. F000:A0AB  5B                    pop    bx
  6147. F000:A0AC  1F                    pop    ds
  6148. F000:A0AD  CF                    iret                ; Interrupt return
  6149.                 int_16h_keybd    endp
  6150.   
  6151. F000:A0AE            loc_504:                    ;  xref F000:A08D
  6152. F000:A0AE  FA                    cli                ; Disable interrupts
  6153. F000:A0AF  8B 1E 001C                mov    bx,keybd_q_tail        ; (0040:001C=24h)
  6154. F000:A0B3  53                    push    bx
  6155. F000:A0B4  E8 FF80                call    sub_76            ; (A037)
  6156. F000:A0B7  3B 1E 001A                cmp    bx,keybd_q_head        ; (0040:001A=24h)
  6157. F000:A0BB  B0 01                mov    al,1
  6158. F000:A0BD  74 0A                jz    short loc_505        ; Jump if zero
  6159. F000:A0BF  89 1E 001C                mov    keybd_q_tail,bx        ; (0040:001C=24h)
  6160. F000:A0C3  5B                    pop    bx
  6161. F000:A0C4  89 0F                mov    [bx],cx
  6162. F000:A0C6  53                    push    bx
  6163. F000:A0C7  B0 00                mov    al,0
  6164. F000:A0C9            loc_505:                    ;  xref F000:A0BD
  6165. F000:A0C9  5B                    pop    bx
  6166. F000:A0CA  EB DE                jmp    short loc_503        ; (A0AA)
  6167. F000:A0CC            loc_506:                    ;  xref F000:A086
  6168. F000:A0CC  80 FB 1F                cmp    bl,1Fh
  6169. F000:A0CF  77 D9                ja    loc_503            ; Jump if above
  6170. F000:A0D1  80 FF 03                cmp    bh,3
  6171. F000:A0D4  77 D4                ja    loc_503            ; Jump if above
  6172. F000:A0D6  3C 05                cmp    al,5
  6173. F000:A0D8  75 D0                jne    loc_503            ; Jump if not equal
  6174. F000:A0DA  C0 CF 03                ror    bh,3            ; Rotate
  6175. F000:A0DD  0A DF                or    bl,bh
  6176. F000:A0DF  E8 FE28                call    sub_69            ; (9F0A)
  6177. F000:A0E2  FB                    sti                ; Enable interrupts
  6178. F000:A0E3  B0 F3                mov    al,0F3h
  6179. F000:A0E5  E8 FF19                call    sub_75            ; (A001)
  6180. F000:A0E8  8A C3                mov    al,bl
  6181. F000:A0EA  E8 FF14                call    sub_75            ; (A001)
  6182. F000:A0ED  E8 FE11                call    sub_68            ; (9F01)
  6183. F000:A0F0  FB                    sti                ; Enable interrupts
  6184. F000:A0F1  B0 F4                mov    al,0F4h
  6185. F000:A0F3  E8 FF0B                call    sub_75            ; (A001)
  6186. F000:A0F6  EB B2                jmp    short loc_503        ; (A0AA)
  6187. F000:A0F8            loc_507:                    ;  xref F000:A096
  6188. F000:A0F8  EB 3B                jmp    short loc_513        ; (A135)
  6189. F000:A0FA            loc_508:                    ;  xref F000:A09A
  6190. F000:A0FA  A0 0018                mov    al,keybd_flags_2    ; (0040:0018=0)
  6191. F000:A0FD  8A E0                mov    ah,al
  6192. F000:A0FF  25 7304                and    ax,7304h
  6193. F000:A102  C0 C8 03                ror    al,3            ; Rotate
  6194. F000:A105  0A E0                or    ah,al
  6195. F000:A107  A0 0096                mov    al,keybd_flags_3    ; (0040:0096=10h)
  6196.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 106
  6197.  
  6198. F000:A10A  24 0C                and    al,0Ch
  6199. F000:A10C  0A E0                or    ah,al
  6200. F000:A10E            loc_509:                    ;  xref F000:A0A0
  6201. F000:A10E  A0 0017                mov    al,keybd_flags_1    ; (0040:0017=80h)
  6202. F000:A111  EB 97                jmp    short loc_503        ; (A0AA)
  6203. F000:A113            loc_510:                    ;  xref F000:A092
  6204. F000:A113  E8 002E                call    sub_82            ; (A144)
  6205. F000:A116  E8 0049                call    sub_83            ; (A162)
  6206. F000:A119  EB 8F                jmp    short loc_503        ; (A0AA)
  6207. F000:A11B            loc_511:                    ;  xref F000:A0A8, A121
  6208. F000:A11B  E8 0026                call    sub_82            ; (A144)
  6209. F000:A11E  E8 004F                call    sub_84            ; (A170)
  6210. F000:A121  74 F8                jz    loc_511            ; Jump if zero
  6211. F000:A123  EB 85                jmp    short loc_503        ; (A0AA)
  6212. F000:A125            loc_512:                    ;  xref F000:A0A4, A133
  6213. F000:A125  E8 FF2E                call    sub_78            ; (A056)
  6214. F000:A128  FB                    sti                ; Enable interrupts
  6215. F000:A129  74 13                jz    short loc_514        ; Jump if zero
  6216. F000:A12B  E8 0042                call    sub_84            ; (A170)
  6217. F000:A12E  75 0E                jnz    short loc_514        ; Jump if not zero
  6218. F000:A130  E8 0011                call    sub_82            ; (A144)
  6219. F000:A133  EB F0                jmp    short loc_512        ; (A125)
  6220. F000:A135            loc_513:                    ;  xref F000:A0F8
  6221. F000:A135  E8 FF1E                call    sub_78            ; (A056)
  6222. F000:A138  FB                    sti                ; Enable interrupts
  6223. F000:A139  74 03                jz    short loc_514        ; Jump if zero
  6224. F000:A13B  E8 0024                call    sub_83            ; (A162)
  6225. F000:A13E            loc_514:                    ;  xref F000:A129, A12E, A139
  6226. F000:A13E  59                    pop    cx
  6227. F000:A13F  5B                    pop    bx
  6228. F000:A140  1F                    pop    ds
  6229. F000:A141  CA 0002                retf    2            ; Return far
  6230.   
  6231.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6232.                 ;                   SUBROUTINE
  6233.                 ;
  6234.                 ;         Called from:     F000:A113, A11B, A130
  6235.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6236.   
  6237.                 sub_82        proc    near
  6238. F000:A144  8B 1E 001A                mov    bx,keybd_q_head        ; (0040:001A=24h)
  6239. F000:A148  3B 1E 001C                cmp    bx,keybd_q_tail        ; (0040:001C=24h)
  6240. F000:A14C  75 05                jne    short loc_515        ; Jump if not equal
  6241. F000:A14E  B8 9002                mov    ax,9002h
  6242. F000:A151  CD 15                int    15h            ; General services, ah=func 90h
  6243.                                         ;  device busy, al=type
  6244. F000:A153            loc_515:                    ;  xref F000:A14C, A157
  6245. F000:A153  FB                    sti                ; Enable interrupts
  6246. F000:A154  E8 FEFF                call    sub_78            ; (A056)
  6247. F000:A157  74 FA                jz    loc_515            ; Jump if zero
  6248. F000:A159  E8 FEDB                call    sub_76            ; (A037)
  6249. F000:A15C  89 1E 001A                mov    keybd_q_head,bx        ; (0040:001A=24h)
  6250. F000:A160  FB                    sti                ; Enable interrupts
  6251. F000:A161  C3                    retn
  6252.                 sub_82        endp
  6253.   
  6254.   
  6255.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 107
  6256.  
  6257.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6258.                 ;                   SUBROUTINE
  6259.                 ;
  6260.                 ;         Called from:     F000:A116, A13B
  6261.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6262.   
  6263.                 sub_83        proc    near
  6264. F000:A162  3D 00F0                cmp    ax,0F0h
  6265. F000:A165  74 06                je    short loc_516        ; Jump if equal
  6266. F000:A167  3C F0                cmp    al,0F0h
  6267. F000:A169  75 02                jne    short loc_516        ; Jump if not equal
  6268. F000:A16B  B0 00                mov    al,0
  6269. F000:A16D            loc_516:                    ;  xref F000:A165, A169
  6270. F000:A16D  0B E4                or    sp,sp            ; Zero ?
  6271. F000:A16F  C3                    retn
  6272.                 sub_83        endp
  6273.   
  6274.   
  6275.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6276.                 ;                   SUBROUTINE
  6277.                 ;
  6278.                 ;         Called from:     F000:A11E, A12B
  6279.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6280.   
  6281.                 sub_84        proc    near
  6282. F000:A170  80 FC 84                cmp    ah,84h
  6283. F000:A173  76 13                jbe    short loc_517        ; Jump if below or =
  6284. F000:A175  80 FC E0                cmp    ah,0E0h
  6285. F000:A178  75 25                jne    short loc_519        ; Jump if not equal
  6286. F000:A17A  B4 1C                mov    ah,1Ch
  6287. F000:A17C  3C 0A                cmp    al,0Ah
  6288. F000:A17E  74 1C                je    short loc_518        ; Jump if equal
  6289. F000:A180  3C 0D                cmp    al,0Dh
  6290. F000:A182  74 18                je    short loc_518        ; Jump if equal
  6291. F000:A184  B4 35                mov    ah,35h            ; '5'
  6292. F000:A186  EB 14                jmp    short loc_518        ; (A19C)
  6293. F000:A188            loc_517:                    ;  xref F000:A173
  6294. F000:A188  3D 00E0                cmp    ax,0E0h
  6295. F000:A18B  74 0F                je    short loc_518        ; Jump if equal
  6296. F000:A18D  3D 00F0                cmp    ax,0F0h
  6297. F000:A190  74 0A                je    short loc_518        ; Jump if equal
  6298. F000:A192  3C F0                cmp    al,0F0h
  6299. F000:A194  74 09                je    short loc_519        ; Jump if equal
  6300. F000:A196  3C E0                cmp    al,0E0h
  6301. F000:A198  75 02                jne    short loc_518        ; Jump if not equal
  6302. F000:A19A  B0 00                mov    al,0
  6303. F000:A19C            loc_518:                    ;  xref F000:A17E, A182, A186, A18B
  6304.                                         ;            A190, A198
  6305. F000:A19C  0B E4                or    sp,sp            ; Zero ?
  6306. F000:A19E  C3                    retn
  6307. F000:A19F            loc_519:                    ;  xref F000:A178, A194
  6308. F000:A19F  3B E4                cmp    sp,sp
  6309. F000:A1A1  C3                    retn
  6310.                 sub_84        endp
  6311.   
  6312. F000:A1A2  90 80 FA 80 FB FC            db    90h, 80h, 0FAh, 80h, 0FBh, 0FCh
  6313. F000:A1A8  72 52 0A E4 75 04            db    72h, 52h, 0Ah, 0E4h, 75h, 4
  6314.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 108
  6315.  
  6316. F000:A1AE  CD 40 32 E4 50 51            db    0CDh, 40h, 32h, 0E4h, 50h, 51h
  6317. F000:A1B4  52 53 56 57 1E 06            db    52h, 53h, 56h, 57h, 1Eh, 6
  6318. F000:A1BA  83 EC 08 55 8B EC            db    83h, 0ECh, 8, 55h, 8Bh, 0ECh
  6319. F000:A1C0  6A 40 1F 50 8A C4            db    6Ah, 40h, 1Fh, 50h, 8Ah, 0C4h
  6320. F000:A1C6  98 8B F8 3C 19 58            db    98h, 8Bh, 0F8h, 3Ch, 19h, 58h
  6321. F000:A1CC  77 24 D1 E7 2E FF            db    77h, 24h, 0D1h, 0E7h, 2Eh, 0FFh
  6322. F000:A1D2  95 01 A2                db    95h, 1, 0A2h
  6323. F000:A1D5            loc_520:                    ;  xref F000:A1FA
  6324. F000:A1D5  89 46 18                mov    [bp+18h],ax
  6325. F000:A1D8  B8 0201                mov    ax,201h
  6326. F000:A1DB  72 05                jc    short loc_521        ; Jump if carry Set
  6327. F000:A1DD  80 66 1E FE                and    byte ptr [bp+1Eh],0FEh
  6328. F000:A1E1  48                    dec    ax
  6329. F000:A1E2            loc_521:                    ;  xref F000:A1DB
  6330. F000:A1E2  09 46 1E                or    [bp+1Eh],ax
  6331. F000:A1E5  5D                    pop    bp
  6332. F000:A1E6  83 C4 08                add    sp,8
  6333. F000:A1E9  07                    pop    es
  6334. F000:A1EA  1F                    pop    ds
  6335. F000:A1EB  5F                    pop    di
  6336. F000:A1EC  5E                    pop    si
  6337. F000:A1ED  5B                    pop    bx
  6338. F000:A1EE  5A                    pop    dx
  6339. F000:A1EF  59                    pop    cx
  6340. F000:A1F0  58                    pop    ax
  6341. F000:A1F1  CF                    iret                ; Interrupt return
  6342. F000:A1F2            loc_522:
  6343. F000:A1F2  B8 0100                mov    ax,100h
  6344. F000:A1F5  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6345. F000:A1F9  F9                    stc                ; Set carry flag
  6346. F000:A1FA  EB D9                jmp    short loc_520        ; (A1D5)
  6347. F000:A1FC  CD 40 CA 02 00            db    0CDh, 40h, 0CAh, 2, 0
  6348. F000:A201  A23E            data_93        dw    offset sub_86        ; Data table (indexed access) (A23E)
  6349. F000:A203  A2B3            data_94        dw    offset sub_90        ; (A2B3)
  6350. F000:A205  A2BE            data_95        dw    offset sub_91        ; (A2BE)
  6351. F000:A207  A2CE            data_96        dw    offset sub_92        ; (A2CE)
  6352. F000:A209  A2DE            data_97        dw    offset sub_93        ; (A2DE)
  6353. F000:A20B  A2FF            data_98        dw    offset sub_94        ; (A2FF)
  6354. F000:A20D  A235            data_99        dw    offset sub_85        ; (A235)
  6355. F000:A20F  A235            data_100    dw    offset sub_85        ; (A235)
  6356. F000:A211  A24B            data_101    dw    offset sub_88        ; (A24B)
  6357. F000:A213  A3D0            data_102    dw    offset sub_96        ; (A3D0)
  6358. F000:A215  A40B            data_103    dw    offset sub_97        ; (A40B)
  6359. F000:A217  A41A            data_104    dw    offset sub_98        ; (A41A)
  6360. F000:A219  A504            data_105    dw    offset sub_99        ; (A504)
  6361. F000:A21B  A245            data_106    dw    offset sub_87        ; (A245)
  6362. F000:A21D  A235            data_107    dw    offset sub_85        ; (A235)
  6363. F000:A21F  A235            data_108    dw    offset sub_85        ; (A235)
  6364. F000:A221  A563            data_109    dw    offset sub_100        ; (A563)
  6365. F000:A223  A591            data_110    dw    offset sub_101        ; (A591)
  6366. F000:A225  A235            data_111    dw    offset sub_85        ; (A235)
  6367. F000:A227  A235            data_112    dw    offset sub_85        ; (A235)
  6368. F000:A229  A5BB            data_113    dw    offset sub_102        ; (A5BB)
  6369. F000:A22B  A250            data_114    dw    offset sub_89        ; (A250)
  6370. F000:A22D  A235            data_115    dw    offset sub_85        ; (A235)
  6371. F000:A22F  A235            data_116    dw    offset sub_85        ; (A235)
  6372. F000:A231  A235            data_117    dw    offset sub_85        ; (A235)
  6373.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 109
  6374.  
  6375. F000:A233  A60B            data_118    dw    offset sub_104        ; (A60B)
  6376.   
  6377.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6378.                 ;                   SUBROUTINE
  6379.                 ;
  6380.                 ;         Called from:     F000:A20D, A20F, A21D, A21F, A225, A227, A22D
  6381.                 ;                  A22F, A231
  6382.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6383.   
  6384.                 sub_85        proc    near
  6385. F000:A235  B8 0100                mov    ax,100h
  6386. F000:A238  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6387. F000:A23C  F9                    stc                ; Set carry flag
  6388. F000:A23D  C3                    retn
  6389.                 sub_85        endp
  6390.   
  6391.   
  6392.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6393.                 ;                   SUBROUTINE
  6394.                 ;
  6395.                 ;         Called from:     F000:A201
  6396.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6397.   
  6398.                 sub_86        proc    near
  6399. F000:A23E  80 FA 81                cmp    dl,81h
  6400. F000:A241  77 07                ja    short loc_ret_524    ; Jump if above
  6401. F000:A243            loc_523:                    ;  xref F000:A248
  6402. F000:A243  EB 15                jmp    short loc_526        ; (A25A)
  6403.   
  6404.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6405.                 ;
  6406.                 ;         Called from:     F000:A21B
  6407.   
  6408.                 sub_87:
  6409. F000:A245  E8 0412                call    sub_107            ; (A65A)
  6410. F000:A248  73 F9                jnc    loc_523            ; Jump if carry=0
  6411.   
  6412. F000:A24A            loc_ret_524:                    ;  xref F000:A241
  6413. F000:A24A  C3                    retn
  6414.   
  6415.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6416.                 ;
  6417.                 ;         Called from:     F000:A211
  6418.   
  6419.                 sub_88:
  6420. F000:A24B  E8 013C                call    sub_95            ; (A38A)
  6421. F000:A24E  EB 03                jmp    short loc_525        ; (A253)
  6422.   
  6423.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6424.                 ;
  6425.                 ;         Called from:     F000:A22B
  6426.   
  6427.                 sub_89:
  6428. F000:A250  E8 038F                call    sub_103            ; (A5E2)
  6429. F000:A253            loc_525:                    ;  xref F000:A24E
  6430. F000:A253  89 56 14                mov    [bp+14h],dx
  6431. F000:A256  89 4E 16                mov    [bp+16h],cx
  6432.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 110
  6433.  
  6434. F000:A259  C3                    retn
  6435. F000:A25A            loc_526:                    ;  xref F000:A243
  6436. F000:A25A  C6 06 008E 00            mov    hdsk_int_flags,0    ; (0040:008E=0)
  6437. F000:A25F  BA 03F6                mov    dx,3F6h
  6438. F000:A262  B0 04                mov    al,4
  6439. F000:A264  EE                    out    dx,al            ; port 3F6h, hdsk0 register
  6440.                                         ;  al = 4, reset controller
  6441. F000:A265  B9 0024                mov    cx,24h
  6442. F000:A268  E8 4DFD                call    sub_264            ; (F068)
  6443. F000:A26B  B0 00                mov    al,0
  6444. F000:A26D  EE                    out    dx,al            ; port 3F6h, hdsk0 register
  6445. F000:A26E  E8 044C                call    sub_109            ; (A6BD)
  6446. F000:A271  72 3F                jc    short loc_ret_531    ; Jump if carry Set
  6447. F000:A273  BA 01F1                mov    dx,1F1h
  6448. F000:A276  EC                    in    al,dx            ; port 1F1h, hdsk0-error regstr
  6449. F000:A277  88 26 008D                mov    hdsk_error,ah        ; (0040:008D=0)
  6450. F000:A27B  3C 01                cmp    al,1
  6451. F000:A27D  74 05                je    short loc_527        ; Jump if equal
  6452. F000:A27F  B4 05                mov    ah,5
  6453. F000:A281  F9                    stc                ; Set carry flag
  6454. F000:A282  EB 2A                jmp    short loc_530        ; (A2AE)
  6455. F000:A284            loc_527:                    ;  xref F000:A27D
  6456. F000:A284  B2 80                mov    dl,80h
  6457. F000:A286  BF 0022                mov    di,22h
  6458. F000:A289  E8 0305                call    sub_101            ; (A591)
  6459. F000:A28C  80 3E 0075 02            cmp    hdsk_count,2        ; (0040:0075=1)
  6460. F000:A291  72 05                jb    short loc_528        ; Jump if below
  6461. F000:A293  B2 81                mov    dl,81h
  6462. F000:A295  E8 02F9                call    sub_101            ; (A591)
  6463. F000:A298            loc_528:                    ;  xref F000:A291
  6464. F000:A298  B2 80                mov    dl,80h
  6465. F000:A29A  BF 0012                mov    di,12h
  6466. F000:A29D  E8 0130                call    sub_96            ; (A3D0)
  6467. F000:A2A0  80 3E 0075 02            cmp    hdsk_count,2        ; (0040:0075=1)
  6468. F000:A2A5  72 05                jb    short loc_529        ; Jump if below
  6469. F000:A2A7  B2 81                mov    dl,81h
  6470. F000:A2A9  E8 0124                call    sub_96            ; (A3D0)
  6471. F000:A2AC            loc_529:                    ;  xref F000:A2A5
  6472. F000:A2AC  32 E4                xor    ah,ah            ; Zero register
  6473. F000:A2AE            loc_530:                    ;  xref F000:A282
  6474. F000:A2AE  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6475.   
  6476. F000:A2B2            loc_ret_531:                    ;  xref F000:A271
  6477. F000:A2B2  C3                    retn
  6478.                 sub_86        endp
  6479.   
  6480.   
  6481.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6482.                 ;                   SUBROUTINE
  6483.                 ;
  6484.                 ;         Called from:     F000:A203
  6485.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6486.   
  6487.                 sub_90        proc    near
  6488. F000:A2B3  A0 0074                mov    al,hdsk_status_1    ; (0040:0074=0)
  6489. F000:A2B6  B4 00                mov    ah,0
  6490. F000:A2B8  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6491.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 111
  6492.  
  6493. F000:A2BC  F8                    clc                ; Clear carry flag
  6494. F000:A2BD  C3                    retn
  6495.                 sub_90        endp
  6496.   
  6497.   
  6498.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6499.                 ;                   SUBROUTINE
  6500.                 ;
  6501.                 ;         Called from:     F000:A205
  6502.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6503.   
  6504.                 sub_91        proc    near
  6505. F000:A2BE  C7 46 18 0200            mov    word ptr [bp+18h],200h
  6506. F000:A2C3  E8 0536                call    sub_115            ; (A7FC)
  6507. F000:A2C6  72 05                jc    short loc_ret_532    ; Jump if carry Set
  6508. F000:A2C8  B4 20                mov    ah,20h            ; ' '
  6509. F000:A2CA  E9 015C                jmp    loc_554            ; (A429)
  6510.   
  6511. F000:A2CD            loc_ret_532:                    ;  xref F000:A2C6
  6512. F000:A2CD  C3                    retn
  6513.   
  6514.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6515.                 ;
  6516.                 ;         Called from:     F000:A207
  6517.   
  6518.                 sub_92:
  6519. F000:A2CE  C7 46 18 0200            mov    word ptr [bp+18h],200h
  6520. F000:A2D3  E8 0526                call    sub_115            ; (A7FC)
  6521. F000:A2D6  72 05                jc    short loc_ret_533    ; Jump if carry Set
  6522. F000:A2D8  B4 30                mov    ah,30h            ; '0'
  6523. F000:A2DA  E9 01B9                jmp    loc_565            ; (A496)
  6524.   
  6525. F000:A2DD            loc_ret_533:                    ;  xref F000:A2D6
  6526. F000:A2DD  C3                    retn
  6527.   
  6528.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6529.                 ;
  6530.                 ;         Called from:     F000:A209
  6531.   
  6532.                 sub_93:
  6533. F000:A2DE  E8 0379                call    sub_107            ; (A65A)
  6534. F000:A2E1  72 1B                jc    short loc_ret_534    ; Jump if carry Set
  6535. F000:A2E3  E8 03FF                call    sub_110            ; (A6E5)
  6536. F000:A2E6  72 16                jc    short loc_ret_534    ; Jump if carry Set
  6537. F000:A2E8  E8 053D                call    sub_116            ; (A828)
  6538. F000:A2EB  E8 055C                call    sub_117            ; (A84A)
  6539. F000:A2EE  E8 03C0                call    sub_108            ; (A6B1)
  6540. F000:A2F1  B0 40                mov    al,40h            ; '@'
  6541. F000:A2F3  E8 04D8                call    sub_114            ; (A7CE)
  6542. F000:A2F6  E8 042B                call    sub_111            ; (A724)
  6543. F000:A2F9  72 03                jc    short loc_ret_534    ; Jump if carry Set
  6544. F000:A2FB  E8 046E                call    sub_113            ; (A76C)
  6545.   
  6546. F000:A2FE            loc_ret_534:                    ;  xref F000:A2E1, A2E6, A2F9
  6547. F000:A2FE  C3                    retn
  6548.   
  6549.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6550.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 112
  6551.  
  6552.                 ;
  6553.                 ;         Called from:     F000:A20B
  6554.   
  6555.                 sub_94:
  6556. F000:A2FF  E8 0358                call    sub_107            ; (A65A)
  6557. F000:A302  72 05                jc    short loc_535        ; Jump if carry Set
  6558. F000:A304  E8 03DE                call    sub_110            ; (A6E5)
  6559. F000:A307  73 03                jnc    short loc_536        ; Jump if carry=0
  6560. F000:A309            loc_535:                    ;  xref F000:A302
  6561. F000:A309  EB 7E                jmp    short loc_ret_545    ; (A389)
  6562. F000:A30B  90                    db    90h
  6563. F000:A30C            loc_536:                    ;  xref F000:A307
  6564. F000:A30C  8C C7                mov    di,es
  6565. F000:A30E  8B F3                mov    si,bx
  6566. F000:A310  E8 0326                call    sub_105            ; (A639)
  6567. F000:A313  E8 0512                call    sub_116            ; (A828)
  6568. F000:A316  E8 0398                call    sub_108            ; (A6B1)
  6569. F000:A319  26: 8A 47 0E                mov    al,es:[bx+0Eh]
  6570. F000:A31D  88 46 03                mov    [bp+3],al
  6571. F000:A320  BA 01F2                mov    dx,1F2h
  6572. F000:A323  EE                    out    dx,al            ; port 1F2h, hdsk0-sector count
  6573. F000:A324  EB 00                jmp    short loc_537        ; (A326)
  6574. F000:A326            loc_537:                    ;  xref F000:A324
  6575. F000:A326  EB 00                jmp    short loc_538        ; (A328)
  6576. F000:A328            loc_538:                    ;  xref F000:A326
  6577. F000:A328  8A 46 05                mov    al,[bp+5]
  6578. F000:A32B  24 3F                and    al,3Fh            ; '?'
  6579. F000:A32D  BA 01F3                mov    dx,1F3h
  6580. F000:A330  EE                    out    dx,al            ; port 1F3h, hdsk0-sector numbr
  6581. F000:A331  EB 00                jmp    short loc_539        ; (A333)
  6582. F000:A333            loc_539:                    ;  xref F000:A331
  6583. F000:A333  EB 00                jmp    short loc_540        ; (A335)
  6584. F000:A335            loc_540:                    ;  xref F000:A333
  6585. F000:A335  8A 46 07                mov    al,[bp+7]
  6586. F000:A338  BA 01F6                mov    dx,1F6h
  6587. F000:A33B  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  6588. F000:A33C  EB 00                jmp    short loc_541        ; (A33E)
  6589. F000:A33E            loc_541:                    ;  xref F000:A33C
  6590. F000:A33E  EB 00                jmp    short loc_542        ; (A340)
  6591. F000:A340            loc_542:                    ;  xref F000:A33E
  6592. F000:A340  8A C5                mov    al,ch
  6593. F000:A342  88 46 05                mov    [bp+5],al
  6594. F000:A345  BA 01F4                mov    dx,1F4h
  6595. F000:A348  EE                    out    dx,al            ; port 1F4h, hdsk0-cylr,lo byte
  6596. F000:A349  EB 00                jmp    short loc_543        ; (A34B)
  6597. F000:A34B            loc_543:                    ;  xref F000:A349
  6598. F000:A34B  EB 00                jmp    short loc_544        ; (A34D)
  6599. F000:A34D            loc_544:                    ;  xref F000:A34B
  6600. F000:A34D  8A C1                mov    al,cl
  6601. F000:A34F  C0 E8 06                shr    al,6            ; Shift w/zeros fill
  6602. F000:A352  8A D0                mov    dl,al
  6603. F000:A354  8A 46 15                mov    al,[bp+15h]
  6604. F000:A357  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  6605. F000:A35A  24 0C                and    al,0Ch
  6606. F000:A35C  0A C2                or    al,dl
  6607. F000:A35E  88 46 06                mov    [bp+6],al
  6608. F000:A361  BA 01F5                mov    dx,1F5h
  6609.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 113
  6610.  
  6611. F000:A364  EE                    out    dx,al            ; port 1F5h, hdsk0-cylr,hi byte
  6612. F000:A365  B0 50                mov    al,50h            ; 'P'
  6613. F000:A367  E8 0464                call    sub_114            ; (A7CE)
  6614. F000:A36A  E8 03DE                call    sub_112            ; (A74B)
  6615. F000:A36D  72 1A                jc    short loc_ret_545    ; Jump if carry Set
  6616. F000:A36F  8C D8                mov    ax,ds
  6617. F000:A371  97                    xchg    ax,di
  6618. F000:A372  8E D8                mov    ds,ax
  6619. F000:A374  B9 0100                mov    cx,100h
  6620. F000:A377  BA 01F0                mov    dx,1F0h
  6621. F000:A37A  FA                    cli                ; Disable interrupts
  6622. F000:A37B  FC                    cld                ; Clear direction
  6623. F000:A37C  F3/ 6F                rep    outsw            ; Rep when cx >0 Out [si] to port dx
  6624. F000:A37E  FB                    sti                ; Enable interrupts
  6625. F000:A37F  8E DF                mov    ds,di
  6626. F000:A381  E8 03A0                call    sub_111            ; (A724)
  6627. F000:A384  72 03                jc    short loc_ret_545    ; Jump if carry Set
  6628. F000:A386  E8 03E3                call    sub_113            ; (A76C)
  6629.   
  6630. F000:A389            loc_ret_545:                    ;  xref F000:A309, A36D, A384
  6631. F000:A389  C3                    retn
  6632.   
  6633.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6634.                 ;
  6635.                 ;         Called from:     F000:A24B
  6636.   
  6637.                 sub_95:
  6638. F000:A38A  E8 02AC                call    sub_105            ; (A639)
  6639. F000:A38D  73 09                jnc    short loc_546        ; Jump if carry=0
  6640. F000:A38F  B4 07                mov    ah,7
  6641. F000:A391  33 C9                xor    cx,cx            ; Zero register
  6642. F000:A393  33 D2                xor    dx,dx            ; Zero register
  6643. F000:A395  F9                    stc                ; Set carry flag
  6644. F000:A396  EB 33                jmp    short loc_548        ; (A3CB)
  6645. F000:A398            loc_546:                    ;  xref F000:A38D
  6646. F000:A398  26: 8A 77 02                mov    dh,es:[bx+2]
  6647. F000:A39C  FE CE                dec    dh
  6648. F000:A39E  26: 8B 07                mov    ax,es:[bx]
  6649. F000:A3A1  2D 0002                sub    ax,2
  6650. F000:A3A4  3D 03FF                cmp    ax,3FFh
  6651. F000:A3A7  76 03                jbe    short loc_547        ; Jump if below or =
  6652. F000:A3A9  B8 03FF                mov    ax,3FFh
  6653. F000:A3AC            loc_547:                    ;  xref F000:A3A7
  6654. F000:A3AC  8A D4                mov    dl,ah
  6655. F000:A3AE  8A E8                mov    ch,al
  6656. F000:A3B0  C0 E4 06                shl    ah,6            ; Shift w/zeros fill
  6657. F000:A3B3  8A CC                mov    cl,ah
  6658. F000:A3B5  8A E2                mov    ah,dl
  6659. F000:A3B7  C0 E4 04                shl    ah,4            ; Shift w/zeros fill
  6660. F000:A3BA  80 E4 C0                and    ah,0C0h
  6661. F000:A3BD  0A F4                or    dh,ah
  6662. F000:A3BF  26: 8A 47 0E                mov    al,es:[bx+0Eh]
  6663. F000:A3C3  0A C8                or    cl,al
  6664. F000:A3C5  8A 16 0075                mov    dl,hdsk_count        ; (0040:0075=1)
  6665. F000:A3C9  B4 00                mov    ah,0
  6666. F000:A3CB            loc_548:                    ;  xref F000:A396
  6667. F000:A3CB  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6668.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 114
  6669.  
  6670. F000:A3CF  C3                    retn
  6671.   
  6672.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6673.                 ;
  6674.                 ;         Called from:     F000:A213, A29D, A2A9
  6675.   
  6676.                 sub_96:
  6677. F000:A3D0  E8 0287                call    sub_107            ; (A65A)
  6678. F000:A3D3  72 35                jc    short loc_ret_551    ; Jump if carry Set
  6679. F000:A3D5  E8 0261                call    sub_105            ; (A639)
  6680. F000:A3D8  72 30                jc    short loc_ret_551    ; Jump if carry Set
  6681. F000:A3DA  E8 0308                call    sub_110            ; (A6E5)
  6682. F000:A3DD  72 2B                jc    short loc_ret_551    ; Jump if carry Set
  6683. F000:A3DF  E8 0446                call    sub_116            ; (A828)
  6684. F000:A3E2  26: 8A 47 0E                mov    al,es:[bx+0Eh]
  6685. F000:A3E6  8A E2                mov    ah,dl
  6686. F000:A3E8  BA 01F2                mov    dx,1F2h
  6687. F000:A3EB  88 46 03                mov    [bp+3],al
  6688. F000:A3EE  EE                    out    dx,al            ; port 1F2h, hdsk0-sector count
  6689. F000:A3EF  EB 00                jmp    short loc_549        ; (A3F1)
  6690. F000:A3F1            loc_549:                    ;  xref F000:A3EF
  6691. F000:A3F1  EB 00                jmp    short loc_550        ; (A3F3)
  6692. F000:A3F3            loc_550:                    ;  xref F000:A3F1
  6693. F000:A3F3  BA 01F6                mov    dx,1F6h
  6694. F000:A3F6  8A 46 07                mov    al,[bp+7]
  6695. F000:A3F9  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  6696. F000:A3FA  B0 91                mov    al,91h
  6697. F000:A3FC  E8 02B2                call    sub_108            ; (A6B1)
  6698. F000:A3FF  E8 03CC                call    sub_114            ; (A7CE)
  6699. F000:A402  E8 031F                call    sub_111            ; (A724)
  6700. F000:A405  72 03                jc    short loc_ret_551    ; Jump if carry Set
  6701. F000:A407  E8 0362                call    sub_113            ; (A76C)
  6702.   
  6703. F000:A40A            loc_ret_551:                    ;  xref F000:A3D3, A3D8, A3DD, A405
  6704. F000:A40A  C3                    retn
  6705.   
  6706.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6707.                 ;
  6708.                 ;         Called from:     F000:A215
  6709.   
  6710.                 sub_97:
  6711. F000:A40B  C7 46 18 0204            mov    word ptr [bp+18h],204h
  6712. F000:A410  E8 03E9                call    sub_115            ; (A7FC)
  6713. F000:A413  72 04                jc    short loc_ret_552    ; Jump if carry Set
  6714. F000:A415  B4 22                mov    ah,22h            ; '"'
  6715. F000:A417  EB 10                jmp    short loc_554        ; (A429)
  6716.   
  6717. F000:A419            loc_ret_552:                    ;  xref F000:A413
  6718. F000:A419  C3                    retn
  6719.   
  6720.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6721.                 ;
  6722.                 ;         Called from:     F000:A217
  6723.   
  6724.                 sub_98:
  6725. F000:A41A  C7 46 18 0204            mov    word ptr [bp+18h],204h
  6726. F000:A41F  E8 03DA                call    sub_115            ; (A7FC)
  6727.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 115
  6728.  
  6729. F000:A422  72 04                jc    short loc_ret_553    ; Jump if carry Set
  6730. F000:A424  B4 32                mov    ah,32h            ; '2'
  6731. F000:A426  EB 6E                jmp    short loc_565        ; (A496)
  6732.   
  6733. F000:A428            loc_ret_553:                    ;  xref F000:A422
  6734. F000:A428  C3                    retn
  6735. F000:A429            loc_554:                    ;  xref F000:A2CA, A417
  6736. F000:A429  E8 022E                call    sub_107            ; (A65A)
  6737. F000:A42C  72 67                jc    short loc_ret_564    ; Jump if carry Set
  6738. F000:A42E  E8 02B4                call    sub_110            ; (A6E5)
  6739. F000:A431  72 62                jc    short loc_ret_564    ; Jump if carry Set
  6740. F000:A433  8B FB                mov    di,bx
  6741. F000:A435  8C C6                mov    si,es
  6742. F000:A437  E8 03EE                call    sub_116            ; (A828)
  6743. F000:A43A  F6 06 0076 C0            test    hdsk_head_ctrl,0C0h    ; (0040:0076=0)
  6744. F000:A43F  74 02                jz    short loc_555        ; Jump if zero
  6745. F000:A441  FE C4                inc    ah
  6746. F000:A443            loc_555:                    ;  xref F000:A43F
  6747. F000:A443  E8 0404                call    sub_117            ; (A84A)
  6748. F000:A446  E8 0268                call    sub_108            ; (A6B1)
  6749. F000:A449  8A C4                mov    al,ah
  6750. F000:A44B  E8 0380                call    sub_114            ; (A7CE)
  6751. F000:A44E            loc_556:                    ;  xref F000:A48A
  6752. F000:A44E  E8 02D3                call    sub_111            ; (A724)
  6753. F000:A451  72 42                jc    short loc_ret_564    ; Jump if carry Set
  6754. F000:A453  E8 0316                call    sub_113            ; (A76C)
  6755. F000:A456  73 07                jnc    short loc_557        ; Jump if carry=0
  6756. F000:A458  80 3E 0074 11            cmp    hdsk_status_1,11h    ; (0040:0074=0)
  6757. F000:A45D  75 2D                jne    short loc_563        ; Jump if not equal
  6758. F000:A45F            loc_557:                    ;  xref F000:A456
  6759. F000:A45F  8E C6                mov    es,si
  6760. F000:A461  B9 0100                mov    cx,100h
  6761. F000:A464  BA 01F0                mov    dx,1F0h
  6762. F000:A467  FA                    cli                ; Disable interrupts
  6763. F000:A468  FC                    cld                ; Clear direction
  6764. F000:A469  F3/ 6D                rep    insw            ; Rep when cx >0 Port dx to es:[di]
  6765. F000:A46B  FB                    sti                ; Enable interrupts
  6766. F000:A46C  F6 46 08 02                test    byte ptr [bp+8],2
  6767. F000:A470  74 15                jz    short loc_562        ; Jump if zero
  6768. F000:A472  E8 02D6                call    sub_112            ; (A74B)
  6769. F000:A475  72 1E                jc    short loc_ret_564    ; Jump if carry Set
  6770. F000:A477  B9 0004                mov    cx,4
  6771.   
  6772. F000:A47A            locloop_558:                    ;  xref F000:A485
  6773. F000:A47A  EC                    in    al,dx            ; port 1F0h, hdsk0-read data
  6774. F000:A47B  26: 88 05                mov    es:[di],al
  6775. F000:A47E  47                    inc    di
  6776. F000:A47F  EB 00                jmp    short loc_559        ; (A481)
  6777. F000:A481            loc_559:                    ;  xref F000:A47F
  6778. F000:A481  EB 00                jmp    short loc_560        ; (A483)
  6779. F000:A483            loc_560:                    ;  xref F000:A481
  6780. F000:A483  EB 00                jmp    short loc_561        ; (A485)
  6781. F000:A485            loc_561:                    ;  xref F000:A483
  6782. F000:A485  E2 F3                loop    locloop_558        ; Loop if cx > 0
  6783.   
  6784. F000:A487            loc_562:                    ;  xref F000:A470
  6785. F000:A487  FE 4E 03                dec    byte ptr [bp+3]
  6786.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 116
  6787.  
  6788. F000:A48A  75 C2                jnz    loc_556            ; Jump if not zero
  6789. F000:A48C            loc_563:                    ;  xref F000:A45D
  6790. F000:A48C  8A 26 0074                mov    ah,hdsk_status_1    ; (0040:0074=0)
  6791. F000:A490  0A E4                or    ah,ah            ; Zero ?
  6792. F000:A492  74 01                jz    short loc_ret_564    ; Jump if zero
  6793. F000:A494  F9                    stc                ; Set carry flag
  6794.   
  6795. F000:A495            loc_ret_564:                    ;  xref F000:A42C, A431, A451, A475
  6796.                                         ;            A492
  6797. F000:A495  C3                    retn
  6798. F000:A496            loc_565:                    ;  xref F000:A2DA, A426
  6799. F000:A496  E8 01C1                call    sub_107            ; (A65A)
  6800. F000:A499  72 68                jc    short loc_ret_573    ; Jump if carry Set
  6801. F000:A49B  E8 0247                call    sub_110            ; (A6E5)
  6802. F000:A49E  72 63                jc    short loc_ret_573    ; Jump if carry Set
  6803. F000:A4A0  8C C7                mov    di,es
  6804. F000:A4A2  8B F3                mov    si,bx
  6805. F000:A4A4  E8 0381                call    sub_116            ; (A828)
  6806. F000:A4A7  E8 018F                call    sub_105            ; (A639)
  6807. F000:A4AA  F6 06 0076 C0            test    hdsk_head_ctrl,0C0h    ; (0040:0076=0)
  6808. F000:A4AF  74 02                jz    short loc_566        ; Jump if zero
  6809. F000:A4B1  FE C4                inc    ah
  6810. F000:A4B3            loc_566:                    ;  xref F000:A4AF
  6811. F000:A4B3  E8 0394                call    sub_117            ; (A84A)
  6812. F000:A4B6  E8 01F8                call    sub_108            ; (A6B1)
  6813. F000:A4B9  8A C4                mov    al,ah
  6814. F000:A4BB  E8 0310                call    sub_114            ; (A7CE)
  6815. F000:A4BE  E8 028A                call    sub_112            ; (A74B)
  6816. F000:A4C1  72 40                jc    short loc_ret_573    ; Jump if carry Set
  6817. F000:A4C3            loc_567:                    ;  xref F000:A501
  6818. F000:A4C3  8E DF                mov    ds,di
  6819. F000:A4C5  B9 0100                mov    cx,100h
  6820. F000:A4C8  BA 01F0                mov    dx,1F0h
  6821. F000:A4CB  FA                    cli                ; Disable interrupts
  6822. F000:A4CC  FC                    cld                ; Clear direction
  6823. F000:A4CD  F3/ 6F                rep    outsw            ; Rep when cx >0 Out [si] to port dx
  6824. F000:A4CF  FB                    sti                ; Enable interrupts
  6825. F000:A4D0  F6 46 08 02                test    byte ptr [bp+8],2
  6826. F000:A4D4  74 19                jz    short loc_572        ; Jump if zero
  6827. F000:A4D6  6A 40                push    40h
  6828. F000:A4D8  1F                    pop    ds
  6829. F000:A4D9  E8 026F                call    sub_112            ; (A74B)
  6830. F000:A4DC  72 25                jc    short loc_ret_573    ; Jump if carry Set
  6831. F000:A4DE  B9 0004                mov    cx,4
  6832. F000:A4E1  8E DF                mov    ds,di
  6833.   
  6834. F000:A4E3            locloop_568:                    ;  xref F000:A4ED
  6835. F000:A4E3  8A 04                mov    al,[si]
  6836. F000:A4E5  46                    inc    si
  6837. F000:A4E6  EE                    out    dx,al            ; port 1F0h, hdsk0-write data
  6838. F000:A4E7  EB 00                jmp    short loc_569        ; (A4E9)
  6839. F000:A4E9            loc_569:                    ;  xref F000:A4E7
  6840. F000:A4E9  EB 00                jmp    short loc_570        ; (A4EB)
  6841. F000:A4EB            loc_570:                    ;  xref F000:A4E9
  6842. F000:A4EB  EB 00                jmp    short loc_571        ; (A4ED)
  6843. F000:A4ED            loc_571:                    ;  xref F000:A4EB
  6844. F000:A4ED  E2 F4                loop    locloop_568        ; Loop if cx > 0
  6845.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 117
  6846.  
  6847.   
  6848. F000:A4EF            loc_572:                    ;  xref F000:A4D4
  6849. F000:A4EF  6A 40                push    40h
  6850. F000:A4F1  1F                    pop    ds
  6851. F000:A4F2  E8 022F                call    sub_111            ; (A724)
  6852. F000:A4F5  72 0C                jc    short loc_ret_573    ; Jump if carry Set
  6853. F000:A4F7  E8 0272                call    sub_113            ; (A76C)
  6854. F000:A4FA  72 07                jc    short loc_ret_573    ; Jump if carry Set
  6855. F000:A4FC  F6 06 008C 08            test    hdsk_status_2,8        ; (0040:008C=50h)
  6856. F000:A501  75 C0                jnz    loc_567            ; Jump if not zero
  6857.   
  6858. F000:A503            loc_ret_573:                    ;  xref F000:A499, A49E, A4C1, A4DC
  6859.                                         ;            A4F5, A4FA
  6860. F000:A503  C3                    retn
  6861.                 sub_91        endp
  6862.   
  6863.   
  6864.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6865.                 ;                   SUBROUTINE
  6866.                 ;
  6867.                 ;         Called from:     F000:A219, A631
  6868.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6869.   
  6870.                 sub_99        proc    near
  6871. F000:A504  E8 0153                call    sub_107            ; (A65A)
  6872. F000:A507  72 59                jc    short loc_ret_578    ; Jump if carry Set
  6873. F000:A509  E8 01D9                call    sub_110            ; (A6E5)
  6874. F000:A50C  72 54                jc    short loc_ret_578    ; Jump if carry Set
  6875. F000:A50E  E8 0317                call    sub_116            ; (A828)
  6876. F000:A511  8A C5                mov    al,ch
  6877. F000:A513  8A EA                mov    ch,dl
  6878. F000:A515  BA 01F4                mov    dx,1F4h
  6879. F000:A518  88 46 05                mov    [bp+5],al
  6880. F000:A51B  EE                    out    dx,al            ; port 1F4h, hdsk0-cylr,lo byte
  6881. F000:A51C  EB 00                jmp    short loc_574        ; (A51E)
  6882. F000:A51E            loc_574:                    ;  xref F000:A51C
  6883. F000:A51E  EB 00                jmp    short loc_575        ; (A520)
  6884. F000:A520            loc_575:                    ;  xref F000:A51E
  6885. F000:A520  8A C1                mov    al,cl
  6886. F000:A522  C0 E8 06                shr    al,6            ; Shift w/zeros fill
  6887. F000:A525  8A 56 15                mov    dl,[bp+15h]
  6888. F000:A528  C0 EA 04                shr    dl,4            ; Shift w/zeros fill
  6889. F000:A52B  80 E2 0C                and    dl,0Ch
  6890. F000:A52E  0A C2                or    al,dl
  6891. F000:A530  BA 01F5                mov    dx,1F5h
  6892. F000:A533  88 46 06                mov    [bp+6],al
  6893. F000:A536  EE                    out    dx,al            ; port 1F5h, hdsk0-cylr,hi byte
  6894. F000:A537  EB 00                jmp    short loc_576        ; (A539)
  6895. F000:A539            loc_576:                    ;  xref F000:A537
  6896. F000:A539  EB 00                jmp    short loc_577        ; (A53B)
  6897. F000:A53B            loc_577:                    ;  xref F000:A539
  6898. F000:A53B  8A 46 07                mov    al,[bp+7]
  6899. F000:A53E  BA 01F6                mov    dx,1F6h
  6900. F000:A541  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  6901. F000:A542  E8 016C                call    sub_108            ; (A6B1)
  6902. F000:A545  B0 70                mov    al,70h            ; 'p'
  6903. F000:A547  E8 0284                call    sub_114            ; (A7CE)
  6904.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 118
  6905.  
  6906. F000:A54A  E8 01D7                call    sub_111            ; (A724)
  6907. F000:A54D  72 13                jc    short loc_ret_578    ; Jump if carry Set
  6908. F000:A54F  E8 021A                call    sub_113            ; (A76C)
  6909. F000:A552  73 0E                jnc    short loc_ret_578    ; Jump if carry=0
  6910. F000:A554  80 3E 0074 40            cmp    hdsk_status_1,40h    ; (0040:0074=0) '@'
  6911. F000:A559  F9                    stc                ; Set carry flag
  6912. F000:A55A  75 06                jnz    short loc_ret_578    ; Jump if not zero
  6913. F000:A55C  32 E4                xor    ah,ah            ; Zero register
  6914. F000:A55E  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6915.   
  6916. F000:A562            loc_ret_578:                    ;  xref F000:A507, A50C, A54D, A552
  6917.                                         ;            A55A
  6918. F000:A562  C3                    retn
  6919.                 sub_99        endp
  6920.   
  6921.   
  6922.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6923.                 ;                   SUBROUTINE
  6924.                 ;
  6925.                 ;         Called from:     F000:A221
  6926.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6927.   
  6928.                 sub_100        proc    near
  6929. F000:A563  E8 00F4                call    sub_107            ; (A65A)
  6930. F000:A566  72 28                jc    short loc_ret_580    ; Jump if carry Set
  6931. F000:A568  E8 0152                call    sub_109            ; (A6BD)
  6932. F000:A56B  72 23                jc    short loc_ret_580    ; Jump if carry Set
  6933. F000:A56D  BA 01F6                mov    dx,1F6h
  6934. F000:A570  8A 46 07                mov    al,[bp+7]
  6935. F000:A573  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  6936. F000:A574  BA 01F7                mov    dx,1F7h
  6937. F000:A577  51                    push    cx
  6938. F000:A578  B9 0002                mov    cx,2
  6939. F000:A57B  E8 4AEA                call    sub_264            ; (F068)
  6940. F000:A57E  59                    pop    cx
  6941. F000:A57F  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  6942. F000:A580  A2 008C                mov    hdsk_status_2,al    ; (0040:008C=50h)
  6943. F000:A583  B4 00                mov    ah,0
  6944. F000:A585  A8 40                test    al,40h            ; '@'
  6945. F000:A587  75 03                jnz    short loc_579        ; Jump if not zero
  6946. F000:A589  B4 AA                mov    ah,0AAh
  6947. F000:A58B  F9                    stc                ; Set carry flag
  6948. F000:A58C            loc_579:                    ;  xref F000:A587
  6949. F000:A58C  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  6950.   
  6951. F000:A590            loc_ret_580:                    ;  xref F000:A566, A56B
  6952. F000:A590  C3                    retn
  6953.                 sub_100        endp
  6954.   
  6955.   
  6956.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6957.                 ;                   SUBROUTINE
  6958.                 ;
  6959.                 ;         Called from:     F000:A223, A289, A295
  6960.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6961.   
  6962.                 sub_101        proc    near
  6963.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 119
  6964.  
  6965. F000:A591  E8 00C6                call    sub_107            ; (A65A)
  6966. F000:A594  72 24                jc    short loc_ret_582    ; Jump if carry Set
  6967. F000:A596  E8 014C                call    sub_110            ; (A6E5)
  6968. F000:A599  72 1F                jc    short loc_ret_582    ; Jump if carry Set
  6969. F000:A59B  E8 028A                call    sub_116            ; (A828)
  6970. F000:A59E  BA 01F6                mov    dx,1F6h
  6971. F000:A5A1  8A 46 07                mov    al,[bp+7]
  6972. F000:A5A4  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  6973. F000:A5A5  E8 0109                call    sub_108            ; (A6B1)
  6974. F000:A5A8  B0 10                mov    al,10h
  6975. F000:A5AA  E8 0221                call    sub_114            ; (A7CE)
  6976. F000:A5AD  E8 0174                call    sub_111            ; (A724)
  6977. F000:A5B0  73 05                jnc    short loc_581        ; Jump if carry=0
  6978. F000:A5B2  E8 016F                call    sub_111            ; (A724)
  6979. F000:A5B5  72 03                jc    short loc_ret_582    ; Jump if carry Set
  6980. F000:A5B7            loc_581:                    ;  xref F000:A5B0
  6981. F000:A5B7  E8 01B2                call    sub_113            ; (A76C)
  6982.   
  6983. F000:A5BA            loc_ret_582:                    ;  xref F000:A594, A599, A5B5
  6984. F000:A5BA  C3                    retn
  6985.                 sub_101        endp
  6986.   
  6987.   
  6988.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6989.                 ;                   SUBROUTINE
  6990.                 ;
  6991.                 ;         Called from:     F000:A229
  6992.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6993.   
  6994.                 sub_102        proc    near
  6995. F000:A5BB  E8 026A                call    sub_116            ; (A828)
  6996. F000:A5BE  E8 00FC                call    sub_109            ; (A6BD)
  6997. F000:A5C1  72 1E                jc    short loc_ret_584    ; Jump if carry Set
  6998. F000:A5C3  B0 90                mov    al,90h
  6999. F000:A5C5  E8 0206                call    sub_114            ; (A7CE)
  7000. F000:A5C8  E8 0159                call    sub_111            ; (A724)
  7001. F000:A5CB  72 14                jc    short loc_ret_584    ; Jump if carry Set
  7002. F000:A5CD  BA 01F1                mov    dx,1F1h
  7003. F000:A5D0  EC                    in    al,dx            ; port 1F1h, hdsk0-error regstr
  7004. F000:A5D1  A2 008D                mov    hdsk_error,al        ; (0040:008D=0)
  7005. F000:A5D4  B4 20                mov    ah,20h            ; ' '
  7006. F000:A5D6  3C 01                cmp    al,1
  7007. F000:A5D8  F9                    stc                ; Set carry flag
  7008. F000:A5D9  75 02                jnz    short loc_583        ; Jump if not zero
  7009. F000:A5DB  32 E4                xor    ah,ah            ; Zero register
  7010. F000:A5DD            loc_583:                    ;  xref F000:A5D9
  7011. F000:A5DD  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7012.   
  7013. F000:A5E1            loc_ret_584:                    ;  xref F000:A5C1, A5CB
  7014. F000:A5E1  C3                    retn
  7015.                 sub_102        endp
  7016.   
  7017.   
  7018.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7019.                 ;                   SUBROUTINE
  7020.                 ;
  7021.                 ;         Called from:     F000:A250
  7022.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 120
  7023.  
  7024.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7025.   
  7026.                 sub_103        proc    near
  7027. F000:A5E2  E8 0075                call    sub_107            ; (A65A)
  7028. F000:A5E5  73 07                jnc    short loc_585        ; Jump if carry=0
  7029. F000:A5E7  32 E4                xor    ah,ah            ; Zero register
  7030. F000:A5E9  33 C9                xor    cx,cx            ; Zero register
  7031. F000:A5EB  33 D2                xor    dx,dx            ; Zero register
  7032. F000:A5ED  C3                    retn
  7033. F000:A5EE            loc_585:                    ;  xref F000:A5E5
  7034. F000:A5EE  E8 0055                call    sub_106            ; (A646)
  7035. F000:A5F1  26: 8B 07                mov    ax,es:[bx]
  7036. F000:A5F4  48                    dec    ax
  7037. F000:A5F5  26: 8A 4F 0E                mov    cl,es:[bx+0Eh]
  7038. F000:A5F9  B5 00                mov    ch,0
  7039. F000:A5FB  F7 E1                mul    cx            ; dx:ax = reg * ax
  7040. F000:A5FD  26: 8A 4F 02                mov    cl,es:[bx+2]
  7041. F000:A601  F7 E1                mul    cx            ; dx:ax = reg * ax
  7042. F000:A603  8B CA                mov    cx,dx
  7043. F000:A605  8B D0                mov    dx,ax
  7044. F000:A607  B4 03                mov    ah,3
  7045. F000:A609  F8                    clc                ; Clear carry flag
  7046. F000:A60A  C3                    retn
  7047.                 sub_103        endp
  7048.   
  7049.   
  7050.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7051.                 ;                   SUBROUTINE
  7052.                 ;
  7053.                 ;         Called from:     F000:A233
  7054.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7055.   
  7056.                 sub_104        proc    near
  7057. F000:A60B  E8 002B                call    sub_105            ; (A639)
  7058. F000:A60E  73 07                jnc    short loc_586        ; Jump if carry=0
  7059. F000:A610  B4 01                mov    ah,1
  7060. F000:A612  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7061. F000:A616  C3                    retn
  7062. F000:A617            loc_586:                    ;  xref F000:A60E
  7063. F000:A617  8A 76 15                mov    dh,[bp+15h]
  7064. F000:A61A  52                    push    dx
  7065. F000:A61B  26: 8B 47 0C                mov    ax,es:[bx+0Ch]
  7066. F000:A61F  8A E8                mov    ch,al
  7067. F000:A621  8A CC                mov    cl,ah
  7068. F000:A623  C0 E1 06                shl    cl,6            ; Shift w/zeros fill
  7069. F000:A626  8A F4                mov    dh,ah
  7070. F000:A628  C0 E6 04                shl    dh,4            ; Shift w/zeros fill
  7071. F000:A62B  80 E6 C0                and    dh,0C0h
  7072. F000:A62E  88 76 15                mov    [bp+15h],dh
  7073. F000:A631  E8 FED0                call    sub_99            ; (A504)
  7074. F000:A634  5A                    pop    dx
  7075. F000:A635  88 76 15                mov    [bp+15h],dh
  7076. F000:A638  C3                    retn
  7077.                 sub_104        endp
  7078.   
  7079.   
  7080.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7081.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 121
  7082.  
  7083.                 ;                   SUBROUTINE
  7084.                 ;
  7085.                 ;         Called from:     F000:A310, A38A, A3D5, A4A7, A60B
  7086.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7087.   
  7088.                 sub_105        proc    near
  7089. F000:A639  80 FA 81                cmp    dl,81h
  7090. F000:A63C  76 08                jbe    short loc_587        ; Jump if below or =
  7091. F000:A63E  B4 01                mov    ah,1
  7092. F000:A640  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7093. F000:A644  F9                    stc                ; Set carry flag
  7094. F000:A645  C3                    retn
  7095.                 sub_105        endp
  7096.   
  7097.   
  7098.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7099.                 ;                   SUBROUTINE
  7100.                 ;
  7101.                 ;         Called from:     F000:A5EE, A676, A82C
  7102.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7103.   
  7104.                 sub_106        proc    near
  7105. F000:A646            loc_587:                    ;  xref F000:A63C
  7106. F000:A646  33 DB                xor    bx,bx            ; Zero register
  7107. F000:A648  8E C3                mov    es,bx
  7108. F000:A64A  F6 C2 01                test    dl,1
  7109. F000:A64D  BB 0104                mov    bx,104h
  7110. F000:A650  74 03                jz    short loc_588        ; Jump if zero
  7111. F000:A652  BB 0118                mov    bx,118h
  7112. F000:A655            loc_588:                    ;  xref F000:A650
  7113. F000:A655  26: C4 1F                les    bx,dword ptr es:[bx]    ; Load 32 bit ptr
  7114. F000:A658  F8                    clc                ; Clear carry flag
  7115. F000:A659  C3                    retn
  7116.                 sub_106        endp
  7117.   
  7118.   
  7119.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7120.                 ;                   SUBROUTINE
  7121.                 ;
  7122.                 ;         Called from:     F000:A245, A2DE, A2FF, A3D0, A429, A496, A504
  7123.                 ;                  A563, A591, A5E2
  7124.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7125.   
  7126.                 sub_107        proc    near
  7127. F000:A65A  50                    push    ax
  7128. F000:A65B  A0 0075                mov    al,hdsk_count        ; (0040:0075=1)
  7129. F000:A65E  8A E2                mov    ah,dl
  7130. F000:A660  80 E4 7F                and    ah,7Fh
  7131. F000:A663  3A C4                cmp    al,ah
  7132. F000:A665  58                    pop    ax
  7133. F000:A666  76 41                jbe    short loc_593        ; Jump if below or =
  7134. F000:A668  83 FF 2A                cmp    di,2Ah
  7135. F000:A66B  74 3A                je    short loc_592        ; Jump if equal
  7136. F000:A66D  83 FF 10                cmp    di,10h
  7137. F000:A670  74 35                je    short loc_592        ; Jump if equal
  7138. F000:A672  06                    push    es
  7139. F000:A673  53                    push    bx
  7140.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 122
  7141.  
  7142. F000:A674  52                    push    dx
  7143. F000:A675  51                    push    cx
  7144. F000:A676  E8 FFCD                call    sub_106            ; (A646)
  7145. F000:A679  26: 8B 4F 05                mov    cx,es:[bx+5]
  7146. F000:A67D  C1 E9 02                shr    cx,2            ; Shift w/zeros fill
  7147. F000:A680  88 4E 02                mov    [bp+2],cl
  7148. F000:A683  B1 A0                mov    cl,0A0h
  7149. F000:A685  F6 C2 01                test    dl,1
  7150. F000:A688  74 02                jz    short loc_589        ; Jump if zero
  7151. F000:A68A  B1 B0                mov    cl,0B0h
  7152. F000:A68C            loc_589:                    ;  xref F000:A688
  7153. F000:A68C  83 FF 12                cmp    di,12h
  7154. F000:A68F  75 0A                jne    short loc_590        ; Jump if not equal
  7155. F000:A691  26: 8A 77 02                mov    dh,es:[bx+2]
  7156. F000:A695  FE CE                dec    dh
  7157. F000:A697  0A CE                or    cl,dh
  7158. F000:A699  EB 05                jmp    short loc_591        ; (A6A0)
  7159. F000:A69B            loc_590:                    ;  xref F000:A68F
  7160. F000:A69B  80 E6 0F                and    dh,0Fh
  7161. F000:A69E  0A CE                or    cl,dh
  7162. F000:A6A0            loc_591:                    ;  xref F000:A699
  7163. F000:A6A0  88 4E 07                mov    [bp+7],cl
  7164. F000:A6A3  59                    pop    cx
  7165. F000:A6A4  5A                    pop    dx
  7166. F000:A6A5  5B                    pop    bx
  7167. F000:A6A6  07                    pop    es
  7168. F000:A6A7            loc_592:                    ;  xref F000:A66B, A670
  7169. F000:A6A7  F8                    clc                ; Clear carry flag
  7170. F000:A6A8  C3                    retn
  7171. F000:A6A9            loc_593:                    ;  xref F000:A666
  7172. F000:A6A9  B4 01                mov    ah,1
  7173. F000:A6AB  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7174. F000:A6AF  F9                    stc                ; Set carry flag
  7175. F000:A6B0  C3                    retn
  7176.                 sub_107        endp
  7177.   
  7178.   
  7179.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7180.                 ;                   SUBROUTINE
  7181.                 ;
  7182.                 ;         Called from:     F000:A2EE, A316, A3FC, A446, A4B6, A542, A5A5
  7183.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7184.   
  7185.                 sub_108        proc    near
  7186. F000:A6B1  52                    push    dx
  7187. F000:A6B2  50                    push    ax
  7188. F000:A6B3  8A 46 02                mov    al,[bp+2]
  7189. F000:A6B6  BA 01F1                mov    dx,1F1h
  7190. F000:A6B9  EE                    out    dx,al            ; port 1F1h, hdsk0-precomp cylr
  7191. F000:A6BA  58                    pop    ax
  7192. F000:A6BB  5A                    pop    dx
  7193. F000:A6BC  C3                    retn
  7194.                 sub_108        endp
  7195.   
  7196.   
  7197.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7198.                 ;                   SUBROUTINE
  7199.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 123
  7200.  
  7201.                 ;
  7202.                 ;         Called from:     F000:A26E, A568, A5BE, A6EB, A7CE
  7203.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7204.   
  7205.                 sub_109        proc    near
  7206. F000:A6BD  FB                    sti                ; Enable interrupts
  7207. F000:A6BE  51                    push    cx
  7208. F000:A6BF  52                    push    dx
  7209. F000:A6C0  50                    push    ax
  7210. F000:A6C1  B9 0010                mov    cx,10h
  7211. F000:A6C4  BA 01F7                mov    dx,1F7h
  7212. F000:A6C7  B4 80                mov    ah,80h
  7213.   
  7214. F000:A6C9            locloop_594:                    ;  xref F000:A6D2
  7215. F000:A6C9  51                    push    cx
  7216. F000:A6CA  33 C9                xor    cx,cx            ; Zero register
  7217. F000:A6CC  E8 488B                call    sub_260            ; (EF5A)
  7218. F000:A6CF  59                    pop    cx
  7219. F000:A6D0  73 0F                jnc    short loc_595        ; Jump if carry=0
  7220. F000:A6D2  E2 F5                loop    locloop_594        ; Loop if cx > 0
  7221.   
  7222. F000:A6D4  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  7223. F000:A6D5  A2 008C                mov    hdsk_status_2,al    ; (0040:008C=50h)
  7224. F000:A6D8  58                    pop    ax
  7225. F000:A6D9  B4 80                mov    ah,80h
  7226. F000:A6DB  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7227. F000:A6DF  EB 01                jmp    short loc_596        ; (A6E2)
  7228. F000:A6E1            loc_595:                    ;  xref F000:A6D0
  7229. F000:A6E1  58                    pop    ax
  7230. F000:A6E2            loc_596:                    ;  xref F000:A6DF
  7231. F000:A6E2  5A                    pop    dx
  7232. F000:A6E3  59                    pop    cx
  7233. F000:A6E4  C3                    retn
  7234.                 sub_109        endp
  7235.   
  7236.   
  7237.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7238.                 ;                   SUBROUTINE
  7239.                 ;
  7240.                 ;         Called from:     F000:A2E3, A304, A3DA, A42E, A49B, A509, A596
  7241.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7242.   
  7243.                 sub_110        proc    near
  7244. F000:A6E5  52                    push    dx
  7245. F000:A6E6  51                    push    cx
  7246. F000:A6E7  50                    push    ax
  7247. F000:A6E8  B9 0C00                mov    cx,0C00h
  7248.   
  7249. F000:A6EB            locloop_597:                    ;  xref F000:A70F
  7250. F000:A6EB  E8 FFCF                call    sub_109            ; (A6BD)
  7251. F000:A6EE  72 28                jc    short loc_599        ; Jump if carry Set
  7252. F000:A6F0  BA 01F6                mov    dx,1F6h
  7253. F000:A6F3  8A 46 07                mov    al,[bp+7]
  7254. F000:A6F6  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  7255. F000:A6F7  51                    push    cx
  7256. F000:A6F8  B9 0002                mov    cx,2
  7257. F000:A6FB  E8 496A                call    sub_264            ; (F068)
  7258.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 124
  7259.  
  7260. F000:A6FE  59                    pop    cx
  7261. F000:A6FF  BA 01F7                mov    dx,1F7h
  7262. F000:A702  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  7263. F000:A703  B4 AA                mov    ah,0AAh
  7264. F000:A705  A8 40                test    al,40h            ; '@'
  7265. F000:A707  74 06                jz    short loc_598        ; Jump if zero
  7266. F000:A709  B4 40                mov    ah,40h            ; '@'
  7267. F000:A70B  A8 10                test    al,10h
  7268. F000:A70D  75 10                jnz    short loc_600        ; Jump if not zero
  7269. F000:A70F            loc_598:                    ;  xref F000:A707
  7270. F000:A70F  E2 DA                loop    locloop_597        ; Loop if cx > 0
  7271.   
  7272. F000:A711  A2 008C                mov    hdsk_status_2,al    ; (0040:008C=50h)
  7273. F000:A714  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7274. F000:A718            loc_599:                    ;  xref F000:A6EE
  7275. F000:A718  59                    pop    cx
  7276. F000:A719  8A C1                mov    al,cl
  7277. F000:A71B  59                    pop    cx
  7278. F000:A71C  5A                    pop    dx
  7279. F000:A71D  F9                    stc                ; Set carry flag
  7280. F000:A71E  C3                    retn
  7281. F000:A71F            loc_600:                    ;  xref F000:A70D
  7282. F000:A71F  58                    pop    ax
  7283. F000:A720  59                    pop    cx
  7284. F000:A721  5A                    pop    dx
  7285. F000:A722  F8                    clc                ; Clear carry flag
  7286. F000:A723  C3                    retn
  7287.                 sub_110        endp
  7288.   
  7289.   
  7290.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7291.                 ;                   SUBROUTINE
  7292.                 ;
  7293.                 ;         Called from:     F000:A2F6, A381, A402, A44E, A4F2, A54A, A5AD
  7294.                 ;                  A5B2, A5C8
  7295.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7296.   
  7297.                 sub_111        proc    near
  7298. F000:A724  F8                    clc                ; Clear carry flag
  7299. F000:A725  B8 9000                mov    ax,9000h
  7300. F000:A728  CD 15                int    15h            ; General services, ah=func 90h
  7301.                                         ;  device busy, al=type
  7302. F000:A72A  FB                    sti                ; Enable interrupts
  7303. F000:A72B  72 10                jc    short loc_602        ; Jump if carry Set
  7304. F000:A72D  BB 008E                mov    bx,8Eh
  7305. F000:A730  BA 0010                mov    dx,10h
  7306. F000:A733            loc_601:                    ;  xref F000:A73B
  7307. F000:A733  33 C9                xor    cx,cx            ; Zero register
  7308. F000:A735  E8 486A                call    sub_262            ; (EFA2)
  7309. F000:A738  73 0B                jnc    short loc_603        ; Jump if carry=0
  7310. F000:A73A  4A                    dec    dx
  7311. F000:A73B  75 F6                jnz    loc_601            ; Jump if not zero
  7312. F000:A73D            loc_602:                    ;  xref F000:A72B
  7313. F000:A73D  B4 80                mov    ah,80h
  7314. F000:A73F  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7315. F000:A743  EB 05                jmp    short loc_ret_604    ; (A74A)
  7316. F000:A745            loc_603:                    ;  xref F000:A738
  7317.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 125
  7318.  
  7319. F000:A745  C6 06 008E 00            mov    hdsk_int_flags,0    ; (0040:008E=0)
  7320.   
  7321. F000:A74A            loc_ret_604:                    ;  xref F000:A743
  7322. F000:A74A  C3                    retn
  7323.                 sub_111        endp
  7324.   
  7325.   
  7326.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7327.                 ;                   SUBROUTINE
  7328.                 ;
  7329.                 ;         Called from:     F000:A36A, A472, A4BE, A4D9
  7330.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7331.   
  7332.                 sub_112        proc    near
  7333. F000:A74B  51                    push    cx
  7334. F000:A74C  52                    push    dx
  7335. F000:A74D  50                    push    ax
  7336. F000:A74E  B9 00C8                mov    cx,0C8h
  7337. F000:A751  BA 01F7                mov    dx,1F7h
  7338. F000:A754  B4 08                mov    ah,8
  7339. F000:A756  E8 4825                call    sub_261            ; (EF7E)
  7340. F000:A759  73 0D                jnc    short loc_605        ; Jump if carry=0
  7341. F000:A75B  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  7342. F000:A75C  A2 008C                mov    hdsk_status_2,al    ; (0040:008C=50h)
  7343. F000:A75F  58                    pop    ax
  7344. F000:A760  B4 80                mov    ah,80h
  7345. F000:A762  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7346. F000:A766  EB 01                jmp    short loc_606        ; (A769)
  7347. F000:A768            loc_605:                    ;  xref F000:A759
  7348. F000:A768  58                    pop    ax
  7349. F000:A769            loc_606:                    ;  xref F000:A766
  7350. F000:A769  5A                    pop    dx
  7351. F000:A76A  59                    pop    cx
  7352. F000:A76B  C3                    retn
  7353.                 sub_112        endp
  7354.   
  7355.   
  7356.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7357.                 ;                   SUBROUTINE
  7358.                 ;
  7359.                 ;         Called from:     F000:A2FB, A386, A407, A453, A4F7, A54F, A5B7
  7360.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7361.   
  7362.                 sub_113        proc    near
  7363. F000:A76C  52                    push    dx
  7364. F000:A76D  50                    push    ax
  7365. F000:A76E  BA 01F7                mov    dx,1F7h
  7366. F000:A771  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  7367. F000:A772  A2 008C                mov    hdsk_status_2,al    ; (0040:008C=50h)
  7368. F000:A775  B4 11                mov    ah,11h
  7369. F000:A777  A8 04                test    al,4
  7370. F000:A779  75 45                jnz    short loc_607        ; Jump if not zero
  7371. F000:A77B  B4 CC                mov    ah,0CCh
  7372. F000:A77D  A8 20                test    al,20h            ; ' '
  7373. F000:A77F  75 3F                jnz    short loc_607        ; Jump if not zero
  7374. F000:A781  B4 AA                mov    ah,0AAh
  7375. F000:A783  A8 40                test    al,40h            ; '@'
  7376.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 126
  7377.  
  7378. F000:A785  74 39                jz    short loc_607        ; Jump if zero
  7379. F000:A787  B4 40                mov    ah,40h            ; '@'
  7380. F000:A789  A8 10                test    al,10h
  7381. F000:A78B  74 33                jz    short loc_607        ; Jump if zero
  7382. F000:A78D  B4 00                mov    ah,0
  7383. F000:A78F  A8 01                test    al,1
  7384. F000:A791  74 2D                jz    short loc_607        ; Jump if zero
  7385. F000:A793  BA 01F1                mov    dx,1F1h
  7386. F000:A796  EC                    in    al,dx            ; port 1F1h, hdsk0-error regstr
  7387. F000:A797  A2 008D                mov    hdsk_error,al        ; (0040:008D=0)
  7388. F000:A79A  B4 02                mov    ah,2
  7389. F000:A79C  A8 01                test    al,1
  7390. F000:A79E  75 20                jnz    short loc_607        ; Jump if not zero
  7391. F000:A7A0  B4 01                mov    ah,1
  7392. F000:A7A2  A8 04                test    al,4
  7393. F000:A7A4  75 1A                jnz    short loc_607        ; Jump if not zero
  7394. F000:A7A6  B4 04                mov    ah,4
  7395. F000:A7A8  A8 10                test    al,10h
  7396. F000:A7AA  75 14                jnz    short loc_607        ; Jump if not zero
  7397. F000:A7AC  B4 10                mov    ah,10h
  7398. F000:A7AE  A8 40                test    al,40h            ; '@'
  7399. F000:A7B0  75 0E                jnz    short loc_607        ; Jump if not zero
  7400. F000:A7B2  B4 40                mov    ah,40h            ; '@'
  7401. F000:A7B4  A8 02                test    al,2
  7402. F000:A7B6  75 08                jnz    short loc_607        ; Jump if not zero
  7403. F000:A7B8  B4 0A                mov    ah,0Ah
  7404. F000:A7BA  A8 80                test    al,80h
  7405. F000:A7BC  75 02                jnz    short loc_607        ; Jump if not zero
  7406. F000:A7BE  B4 BB                mov    ah,0BBh
  7407. F000:A7C0            loc_607:                    ;  xref F000:A779, A77F, A785, A78B
  7408.                                         ;            A791, A79E, A7A4, A7AA
  7409.                                         ;            A7B0, A7B6, A7BC
  7410. F000:A7C0  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7411. F000:A7C4  5A                    pop    dx
  7412. F000:A7C5  8A C2                mov    al,dl
  7413. F000:A7C7  5A                    pop    dx
  7414. F000:A7C8  0A E4                or    ah,ah            ; Zero ?
  7415. F000:A7CA  74 01                jz    short loc_ret_608    ; Jump if zero
  7416. F000:A7CC  F9                    stc                ; Set carry flag
  7417.   
  7418. F000:A7CD            loc_ret_608:                    ;  xref F000:A7CA
  7419. F000:A7CD  C3                    retn
  7420.                 sub_113        endp
  7421.   
  7422.   
  7423.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7424.                 ;                   SUBROUTINE
  7425.                 ;
  7426.                 ;         Called from:     F000:A2F3, A367, A3FF, A44B, A4BB, A547, A5AA
  7427.                 ;                  A5C5
  7428.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7429.   
  7430.                 sub_114        proc    near
  7431. F000:A7CE  E8 FEEC                call    sub_109            ; (A6BD)
  7432. F000:A7D1  FA                    cli                ; Disable interrupts
  7433. F000:A7D2  50                    push    ax
  7434. F000:A7D3  C6 06 008E 00            mov    hdsk_int_flags,0    ; (0040:008E=0)
  7435.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 127
  7436.  
  7437. F000:A7D8  E4 A1                in    al,0A1h            ; port 0A1h, 8259-2 int IMR
  7438. F000:A7DA  EB 00                jmp    short loc_609        ; (A7DC)
  7439. F000:A7DC            loc_609:                    ;  xref F000:A7DA
  7440. F000:A7DC  EB 00                jmp    short loc_610        ; (A7DE)
  7441. F000:A7DE            loc_610:                    ;  xref F000:A7DC
  7442. F000:A7DE  24 BF                and    al,0BFh
  7443. F000:A7E0  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  7444. F000:A7E2  E4 21                in    al,21h            ; port 21h, 8259-1 int IMR
  7445. F000:A7E4  EB 00                jmp    short loc_611        ; (A7E6)
  7446. F000:A7E6            loc_611:                    ;  xref F000:A7E4
  7447. F000:A7E6  EB 00                jmp    short loc_612        ; (A7E8)
  7448. F000:A7E8            loc_612:                    ;  xref F000:A7E6
  7449. F000:A7E8  24 FB                and    al,0FBh
  7450. F000:A7EA  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  7451. F000:A7EC  EB 00                jmp    short loc_613        ; (A7EE)
  7452. F000:A7EE            loc_613:                    ;  xref F000:A7EC
  7453. F000:A7EE  EB 00                jmp    short loc_614        ; (A7F0)
  7454. F000:A7F0            loc_614:                    ;  xref F000:A7EE
  7455. F000:A7F0  58                    pop    ax
  7456. F000:A7F1  52                    push    dx
  7457. F000:A7F2  BA 01F7                mov    dx,1F7h
  7458. F000:A7F5  88 46 08                mov    [bp+8],al
  7459. F000:A7F8  EE                    out    dx,al            ; port 1F7h, hdsk0-command reg
  7460. F000:A7F9  5A                    pop    dx
  7461. F000:A7FA  FB                    sti                ; Enable interrupts
  7462. F000:A7FB  C3                    retn
  7463.                 sub_114        endp
  7464.   
  7465.   
  7466.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7467.                 ;                   SUBROUTINE
  7468.                 ;
  7469.                 ;         Called from:     F000:A2C3, A2D3, A410, A41F
  7470.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7471.   
  7472.                 sub_115        proc    near
  7473. F000:A7FC  52                    push    dx
  7474. F000:A7FD  50                    push    ax
  7475. F000:A7FE  8B C3                mov    ax,bx
  7476. F000:A800  C1 E8 04                shr    ax,4            ; Shift w/zeros fill
  7477. F000:A803  8C C2                mov    dx,es
  7478. F000:A805  03 C2                add    ax,dx
  7479. F000:A807  8E C0                mov    es,ax
  7480. F000:A809  83 E3 0F                and    bx,0Fh
  7481. F000:A80C  33 C0                xor    ax,ax            ; Zero register
  7482. F000:A80E  BA 0001                mov    dx,1
  7483. F000:A811  2B C3                sub    ax,bx
  7484. F000:A813  83 DA 00                sbb    dx,0
  7485. F000:A816  F7 76 18                div    word ptr [bp+18h]    ; ax,dxrem=dx:ax/data
  7486. F000:A819  8A D0                mov    dl,al
  7487. F000:A81B  58                    pop    ax
  7488. F000:A81C  3A D0                cmp    dl,al
  7489. F000:A81E  5A                    pop    dx
  7490. F000:A81F  73 06                jnc    short loc_ret_615    ; Jump if carry=0
  7491. F000:A821  B4 09                mov    ah,9
  7492. F000:A823  88 26 0074                mov    hdsk_status_1,ah    ; (0040:0074=0)
  7493.   
  7494.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 128
  7495.  
  7496. F000:A827            loc_ret_615:                    ;  xref F000:A81F
  7497. F000:A827  C3                    retn
  7498.                 sub_115        endp
  7499.   
  7500.   
  7501.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7502.                 ;                   SUBROUTINE
  7503.                 ;
  7504.                 ;         Called from:     F000:A2E8, A313, A3DF, A437, A4A4, A50E, A59B
  7505.                 ;                  A5BB
  7506.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7507.   
  7508.                 sub_116        proc    near
  7509. F000:A828  06                    push    es
  7510. F000:A829  53                    push    bx
  7511. F000:A82A  52                    push    dx
  7512. F000:A82B  50                    push    ax
  7513. F000:A82C  E8 FE17                call    sub_106            ; (A646)
  7514. F000:A82F  26: 8A 47 08                mov    al,es:[bx+8]
  7515. F000:A833  8A E0                mov    ah,al
  7516. F000:A835  24 08                and    al,8
  7517. F000:A837  BA 03F6                mov    dx,3F6h
  7518. F000:A83A  EE                    out    dx,al            ; port 3F6h, hdsk0 register
  7519. F000:A83B  A0 0076                mov    al,hdsk_head_ctrl    ; (0040:0076=0)
  7520. F000:A83E  24 C0                and    al,0C0h
  7521. F000:A840  0A C4                or    al,ah
  7522. F000:A842  A2 0076                mov    hdsk_head_ctrl,al    ; (0040:0076=0)
  7523. F000:A845  58                    pop    ax
  7524. F000:A846  5A                    pop    dx
  7525. F000:A847  5B                    pop    bx
  7526. F000:A848  07                    pop    es
  7527. F000:A849  C3                    retn
  7528.                 sub_116        endp
  7529.   
  7530.   
  7531.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7532.                 ;                   SUBROUTINE
  7533.                 ;
  7534.                 ;         Called from:     F000:A2EB, A443, A4B3
  7535.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7536.   
  7537.                 sub_117        proc    near
  7538. F000:A84A  50                    push    ax
  7539. F000:A84B  52                    push    dx
  7540. F000:A84C  BA 01F2                mov    dx,1F2h
  7541. F000:A84F  88 46 03                mov    [bp+3],al
  7542. F000:A852  EE                    out    dx,al            ; port 1F2h, hdsk0-sector count
  7543. F000:A853  EB 00                jmp    short loc_616        ; (A855)
  7544. F000:A855            loc_616:                    ;  xref F000:A853
  7545. F000:A855  EB 00                jmp    short loc_617        ; (A857)
  7546. F000:A857            loc_617:                    ;  xref F000:A855
  7547. F000:A857  8A C1                mov    al,cl
  7548. F000:A859  24 3F                and    al,3Fh            ; '?'
  7549. F000:A85B  BA 01F3                mov    dx,1F3h
  7550. F000:A85E  88 46 04                mov    [bp+4],al
  7551. F000:A861  EE                    out    dx,al            ; port 1F3h, hdsk0-sector numbr
  7552. F000:A862  EB 00                jmp    short loc_618        ; (A864)
  7553.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 129
  7554.  
  7555. F000:A864            loc_618:                    ;  xref F000:A862
  7556. F000:A864  EB 00                jmp    short loc_619        ; (A866)
  7557. F000:A866            loc_619:                    ;  xref F000:A864
  7558. F000:A866  8A C5                mov    al,ch
  7559. F000:A868  BA 01F4                mov    dx,1F4h
  7560. F000:A86B  88 46 05                mov    [bp+5],al
  7561. F000:A86E  EE                    out    dx,al            ; port 1F4h, hdsk0-cylr,lo byte
  7562. F000:A86F  EB 00                jmp    short loc_620        ; (A871)
  7563. F000:A871            loc_620:                    ;  xref F000:A86F
  7564. F000:A871  EB 00                jmp    short loc_621        ; (A873)
  7565. F000:A873            loc_621:                    ;  xref F000:A871
  7566. F000:A873  8A C1                mov    al,cl
  7567. F000:A875  C0 E8 06                shr    al,6            ; Shift w/zeros fill
  7568. F000:A878  8A 56 15                mov    dl,[bp+15h]
  7569. F000:A87B  C0 EA 04                shr    dl,4            ; Shift w/zeros fill
  7570. F000:A87E  80 E2 0C                and    dl,0Ch
  7571. F000:A881  0A C2                or    al,dl
  7572. F000:A883  BA 01F5                mov    dx,1F5h
  7573. F000:A886  88 46 06                mov    [bp+6],al
  7574. F000:A889  EE                    out    dx,al            ; port 1F5h, hdsk0-cylr,hi byte
  7575. F000:A88A  EB 00                jmp    short loc_622        ; (A88C)
  7576. F000:A88C            loc_622:                    ;  xref F000:A88A
  7577. F000:A88C  EB 00                jmp    short loc_623        ; (A88E)
  7578. F000:A88E            loc_623:                    ;  xref F000:A88C
  7579. F000:A88E  BA 01F6                mov    dx,1F6h
  7580. F000:A891  8A 46 07                mov    al,[bp+7]
  7581. F000:A894  EE                    out    dx,al            ; port 1F6h, hdsk0-siz/drv/head
  7582. F000:A895  5A                    pop    dx
  7583. F000:A896  58                    pop    ax
  7584. F000:A897  C3                    retn
  7585.                 sub_117        endp
  7586.   
  7587.   
  7588.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7589.                 ;                   SUBROUTINE
  7590.                 ;
  7591.                 ;         Called from:     F000:9498
  7592.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7593.   
  7594.                 sub_118        proc    near
  7595. F000:A898  FA                    cli                ; Disable interrupts
  7596. F000:A899  FC                    cld                ; Clear direction
  7597. F000:A89A  BE 004C                mov    si,4Ch
  7598. F000:A89D  BF 0100                mov    di,100h
  7599. F000:A8A0  B8 A1A3                mov    ax,0A1A3h
  7600. F000:A8A3  26: 87 04                xchg    ax,es:[si]
  7601. F000:A8A6  AB                    stosw                ; Store ax to es:[di]
  7602. F000:A8A7  8C C8                mov    ax,cs
  7603. F000:A8A9  26: 87 44 02                xchg    ax,es:[si+2]
  7604. F000:A8AD  AB                    stosw                ; Store ax to es:[di]
  7605. F000:A8AE  B8 E845                mov    ax,0E845h
  7606. F000:A8B1  BF 01D8                mov    di,1D8h
  7607. F000:A8B4  AB                    stosw                ; Store ax to es:[di]
  7608. F000:A8B5  26: 8C 0D                mov    es:[di],cs
  7609. F000:A8B8  BF 0442                mov    di,442h
  7610. F000:A8BB  33 C0                xor    ax,ax            ; Zero register
  7611. F000:A8BD  AB                    stosw                ; Store ax to es:[di]
  7612.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 130
  7613.  
  7614. F000:A8BE  AB                    stosw                ; Store ax to es:[di]
  7615. F000:A8BF  AB                    stosw                ; Store ax to es:[di]
  7616. F000:A8C0  AA                    stosb                ; Store al to es:[di]
  7617. F000:A8C1  BF 0474                mov    di,474h
  7618. F000:A8C4  AB                    stosw                ; Store ax to es:[di]
  7619. F000:A8C5  AA                    stosb                ; Store al to es:[di]
  7620. F000:A8C6  BF 048C                mov    di,48Ch
  7621. F000:A8C9  AB                    stosw                ; Store ax to es:[di]
  7622. F000:A8CA  AA                    stosb                ; Store al to es:[di]
  7623. F000:A8CB  BE E401                mov    si,0E401h
  7624. F000:A8CE  BF 0104                mov    di,104h
  7625. F000:A8D1  26: 8C 4D 02                mov    es:[di+2],cs
  7626. F000:A8D5  B0 92                mov    al,92h
  7627. F000:A8D7  E8 45C5                call    sub_257            ; (EE9F)
  7628. F000:A8DA  8A C8                mov    cl,al
  7629. F000:A8DC  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  7630. F000:A8DF  74 19                jz    short loc_624        ; Jump if zero
  7631. F000:A8E1  48                    dec    ax
  7632. F000:A8E2  3C 0E                cmp    al,0Eh
  7633. F000:A8E4  75 20                jne    short loc_625        ; Jump if not equal
  7634. F000:A8E6  B0 99                mov    al,99h
  7635. F000:A8E8  E8 45B4                call    sub_257            ; (EE9F)
  7636. F000:A8EB  2C 01                sub    al,1
  7637. F000:A8ED  72 0B                jc    short loc_624        ; Jump if carry Set
  7638. F000:A8EF  3C 2E                cmp    al,2Eh            ; '.'
  7639. F000:A8F1  77 07                ja    short loc_624        ; Jump if above
  7640. F000:A8F3  75 11                jnz    short loc_625        ; Jump if not zero
  7641. F000:A8F5  E8 EF80                call    sub_58            ; (9878)
  7642. F000:A8F8  EB 12                jmp    short loc_626        ; (A90C)
  7643. F000:A8FA            loc_624:                    ;  xref F000:A8DF, A8ED, A8F1
  7644. F000:A8FA  8B C6                mov    ax,si
  7645. F000:A8FC  AB                    stosw                ; Store ax to es:[di]
  7646. F000:A8FD  BF 0118                mov    di,118h
  7647. F000:A900  AB                    stosw                ; Store ax to es:[di]
  7648. F000:A901  8C C8                mov    ax,cs
  7649. F000:A903  AB                    stosw                ; Store ax to es:[di]
  7650. F000:A904  EB 4B                jmp    short loc_631        ; (A951)
  7651. F000:A906            loc_625:                    ;  xref F000:A8E4, A8F3
  7652. F000:A906  C1 E0 04                shl    ax,4            ; Shift w/zeros fill
  7653. F000:A909  03 C6                add    ax,si
  7654. F000:A90B  AB                    stosw                ; Store ax to es:[di]
  7655. F000:A90C            loc_626:                    ;  xref F000:A8F8
  7656. F000:A90C  FE 06 0075                inc    byte ptr ds:data_48e    ; (C000:0075=54h)
  7657. F000:A910  BF 0118                mov    di,118h
  7658. F000:A913  26: 8C 4D 02                mov    es:[di+2],cs
  7659. F000:A917  8A C1                mov    al,cl
  7660. F000:A919  25 000F                and    ax,0Fh
  7661. F000:A91C  74 19                jz    short loc_627        ; Jump if zero
  7662. F000:A91E  48                    dec    ax
  7663. F000:A91F  3C 0E                cmp    al,0Eh
  7664. F000:A921  75 19                jne    short loc_628        ; Jump if not equal
  7665. F000:A923  B0 9A                mov    al,9Ah
  7666. F000:A925  E8 4577                call    sub_257            ; (EE9F)
  7667. F000:A928  2C 01                sub    al,1
  7668. F000:A92A  72 0B                jc    short loc_627        ; Jump if carry Set
  7669. F000:A92C  3C 2E                cmp    al,2Eh            ; '.'
  7670. F000:A92E  77 07                ja    short loc_627        ; Jump if above
  7671.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 131
  7672.  
  7673. F000:A930  75 0A                jnz    short loc_628        ; Jump if not zero
  7674. F000:A932  E8 EF4B                call    sub_59            ; (9880)
  7675. F000:A935  EB 0B                jmp    short loc_629        ; (A942)
  7676. F000:A937            loc_627:                    ;  xref F000:A91C, A92A, A92E
  7677. F000:A937  8B C6                mov    ax,si
  7678. F000:A939  AB                    stosw                ; Store ax to es:[di]
  7679. F000:A93A  EB 0A                jmp    short loc_630        ; (A946)
  7680. F000:A93C            loc_628:                    ;  xref F000:A921, A930
  7681. F000:A93C  C1 E0 04                shl    ax,4            ; Shift w/zeros fill
  7682. F000:A93F  03 C6                add    ax,si
  7683. F000:A941  AB                    stosw                ; Store ax to es:[di]
  7684. F000:A942            loc_629:                    ;  xref F000:A935
  7685. F000:A942  FE 06 0075                inc    byte ptr ds:data_48e    ; (C000:0075=54h)
  7686. F000:A946            loc_630:                    ;  xref F000:A93A
  7687. F000:A946  B2 80                mov    dl,80h
  7688. F000:A948  B4 14                mov    ah,14h
  7689. F000:A94A  CD 13                int    13h            ; Disk  dl=drive #: ah=func a4h
  7690.                                         ;  controller diagnostic
  7691. F000:A94C  73 11                jnc    short loc_632        ; Jump if carry=0
  7692. F000:A94E  83 CD 04                or    bp,4
  7693. F000:A951            loc_631:                    ;  xref F000:A904, A990
  7694. F000:A951  B8 8E8E                mov    ax,8E8Eh
  7695. F000:A954  E8 4548                call    sub_257            ; (EE9F)
  7696. F000:A957  0C 08                or    al,8
  7697. F000:A959  86 C4                xchg    al,ah
  7698. F000:A95B  E8 4550                call    sub_258            ; (EEAE)
  7699. F000:A95E  C3                    retn
  7700. F000:A95F            loc_632:                    ;  xref F000:A94C
  7701. F000:A95F  E8 0072                call    sub_120            ; (A9D4)
  7702. F000:A962  73 05                jnc    short loc_633        ; Jump if carry=0
  7703. F000:A964  83 CD 20                or    bp,20h
  7704. F000:A967  EB 08                jmp    short loc_634        ; (A971)
  7705. F000:A969            loc_633:                    ;  xref F000:A962
  7706. F000:A969  E8 0034                call    sub_119            ; (A9A0)
  7707. F000:A96C  73 03                jnc    short loc_634        ; Jump if carry=0
  7708. F000:A96E  83 CD 08                or    bp,8
  7709. F000:A971            loc_634:                    ;  xref F000:A967, A96C
  7710. F000:A971  80 3E 0075 01            cmp    byte ptr ds:data_48e,1    ; (C000:0075=54h)
  7711. F000:A976  74 14                je    short loc_636        ; Jump if equal
  7712. F000:A978  B2 81                mov    dl,81h
  7713. F000:A97A  E8 0057                call    sub_120            ; (A9D4)
  7714. F000:A97D  73 05                jnc    short loc_635        ; Jump if carry=0
  7715. F000:A97F  83 CD 40                or    bp,40h
  7716. F000:A982  EB 08                jmp    short loc_636        ; (A98C)
  7717. F000:A984            loc_635:                    ;  xref F000:A97D
  7718. F000:A984  E8 0019                call    sub_119            ; (A9A0)
  7719. F000:A987  73 03                jnc    short loc_636        ; Jump if carry=0
  7720. F000:A989  83 CD 10                or    bp,10h
  7721. F000:A98C            loc_636:                    ;  xref F000:A976, A982, A987
  7722. F000:A98C  F7 C5 0020                test    bp,20h
  7723. F000:A990  75 BF                jnz    loc_631            ; Jump if not zero
  7724. F000:A992  B8 8E8E                mov    ax,8E8Eh
  7725. F000:A995  E8 4507                call    sub_257            ; (EE9F)
  7726. F000:A998  24 F7                and    al,0F7h
  7727. F000:A99A  86 C4                xchg    al,ah
  7728. F000:A99C  E8 450F                call    sub_258            ; (EEAE)
  7729. F000:A99F  C3                    retn
  7730.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 132
  7731.  
  7732.                 sub_118        endp
  7733.   
  7734.   
  7735.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7736.                 ;                   SUBROUTINE
  7737.                 ;
  7738.                 ;         Called from:     F000:A969, A984
  7739.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7740.   
  7741.                 sub_119        proc    near
  7742. F000:A9A0  B4 08                mov    ah,8
  7743. F000:A9A2  52                    push    dx
  7744. F000:A9A3  CD 13                int    13h            ; Disk  dl=drive #: ah=func a8h
  7745.                                         ;  read parameters for drive dl
  7746. F000:A9A5  58                    pop    ax
  7747. F000:A9A6  8A D0                mov    dl,al
  7748. F000:A9A8  72 29                jc    short loc_ret_638    ; Jump if carry Set
  7749. F000:A9AA            loc_637:                    ;  xref F000:A9D0
  7750. F000:A9AA  B8 0401                mov    ax,401h
  7751. F000:A9AD  CD 13                int    13h            ; Disk  dl=drive #: ah=func a4h
  7752.                                         ;  verify sectors with mem es:bx
  7753. F000:A9AF  73 22                jnc    short loc_ret_638    ; Jump if carry=0
  7754. F000:A9B1  80 FC 0A                cmp    ah,0Ah
  7755. F000:A9B4  74 1D                je    short loc_ret_638    ; Jump if equal
  7756. F000:A9B6  80 FC 10                cmp    ah,10h
  7757. F000:A9B9  74 18                je    short loc_ret_638    ; Jump if equal
  7758. F000:A9BB  80 FC 11                cmp    ah,11h
  7759. F000:A9BE  74 13                je    short loc_ret_638    ; Jump if equal
  7760. F000:A9C0  A1 006C                mov    ax,ds:data_44e        ; (C000:006C=4D20h)
  7761. F000:A9C3  2B C6                sub    ax,si
  7762. F000:A9C5  3D 02D8                cmp    ax,2D8h
  7763. F000:A9C8  F5                    cmc                ; Complement carry
  7764. F000:A9C9  72 08                jc    short loc_ret_638    ; Jump if carry Set
  7765. F000:A9CB  FE C9                dec    cl
  7766. F000:A9CD  F6 C1 3F                test    cl,3Fh            ; '?'
  7767. F000:A9D0  75 D8                jnz    loc_637            ; Jump if not zero
  7768. F000:A9D2  F9                    stc                ; Set carry flag
  7769.   
  7770. F000:A9D3            loc_ret_638:                    ;  xref F000:A9A8, A9AF, A9B4, A9B9
  7771.                                         ;            A9BE, A9C9
  7772. F000:A9D3  C3                    retn
  7773.                 sub_119        endp
  7774.   
  7775.   
  7776.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  7777.                 ;                   SUBROUTINE
  7778.                 ;
  7779.                 ;         Called from:     F000:A95F, A97A
  7780.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7781.   
  7782.                 sub_120        proc    near
  7783. F000:A9D4  8B 36 006C                mov    si,ds:data_44e        ; (C000:006C=4D20h)
  7784. F000:A9D8            loc_639:                    ;  xref F000:A9ED
  7785. F000:A9D8  B4 09                mov    ah,9
  7786. F000:A9DA  CD 13                int    13h            ; Disk  dl=drive #: ah=func a9h
  7787.                                         ;  initialize drive parameters
  7788. F000:A9DC  72 06                jc    short loc_640        ; Jump if carry Set
  7789.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 133
  7790.  
  7791. F000:A9DE  B4 11                mov    ah,11h
  7792. F000:A9E0  CD 13                int    13h            ; Disk  dl=drive #: ah=func a1h
  7793.                                         ;  recalibrate drive
  7794. F000:A9E2  73 0B                jnc    short loc_ret_641    ; Jump if carry=0
  7795. F000:A9E4            loc_640:                    ;  xref F000:A9DC
  7796. F000:A9E4  A1 006C                mov    ax,ds:data_44e        ; (C000:006C=4D20h)
  7797. F000:A9E7  2B C6                sub    ax,si
  7798. F000:A9E9  3D 02D8                cmp    ax,2D8h
  7799. F000:A9EC  F5                    cmc                ; Complement carry
  7800. F000:A9ED  73 E9                jnc    loc_639            ; Jump if carry=0
  7801.   
  7802. F000:A9EF            loc_ret_641:                    ;  xref F000:A9E2
  7803. F000:A9EF  C3                    retn
  7804.                 sub_120        endp
  7805.   
  7806. F000:A9F0            loc_642:                    ;  xref F000:9325
  7807. F000:A9F0  B8 028F                mov    ax,28Fh
  7808. F000:A9F3  E8 449C                call    sub_256            ; (EE92)
  7809. F000:A9F6  B0 30                mov    al,30h            ; '0'
  7810. F000:A9F8  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7811. F000:A9FA  E8 CC71                call    $-338Ch
  7812. F000:A9FD  BF 0600                mov    di,600h
  7813. F000:AA00  57                    push    di
  7814. F000:AA01  BE E260                mov    si,0E260h
  7815. F000:AA04  B9 0030                mov    cx,30h
  7816. F000:AA07  FA                    cli                ; Disable interrupts
  7817. F000:AA08  FC                    cld                ; Clear direction
  7818. F000:AA09  2E: F3/ A5                rep    movs word ptr es:[di],word ptr cs:[si]    ; Rep when cx >0 Mov [si] to es:[di]
  7819. F000:AA0C  33 F6                xor    si,si            ; Zero register
  7820. F000:AA0E  BF 8010                mov    di,8010h
  7821. F000:AA11  B9 0300                mov    cx,300h
  7822. F000:AA14  26: F3/ A5                rep    movs word ptr es:[di],word ptr es:[si]    ; Rep when cx >0 Mov [si] to es:[di]
  7823. F000:AA17  5E                    pop    si
  7824. F000:AA18  26: C7 44 0A 0600            mov    word ptr es:[si+0Ah],600h
  7825. F000:AA1E  26: C6 44 0C 00            mov    byte ptr es:[si+0Ch],0
  7826. F000:AA23  BB 0800                mov    bx,800h
  7827. F000:AA26  B4 89                mov    ah,89h
  7828. F000:AA28  B0 31                mov    al,31h            ; '1'
  7829. F000:AA2A  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7830. F000:AA2C  CD 15                int    15h            ; General services, ah=func 89h
  7831.                                         ;  set protected mode operation
  7832. F000:AA2E  74 06                jz    short loc_644        ; Jump if zero
  7833. F000:AA30            loc_643:                    ;  xref F000:ABB7, AD7A
  7834. F000:AA30  BE 7D22                mov    si,7D22h
  7835. F000:AA33  E9 E35E                jmp    loc_229            ; (8D94)
  7836. F000:AA36            loc_644:                    ;  xref F000:AA2E
  7837. F000:AA36  E8 0344                call    sub_129            ; (AD7D)
  7838. F000:AA39  B8 0040                mov    ax,seg_b
  7839. F000:AA3C  8E C0                mov    es,ax
  7840. F000:AA3E  B0 32                mov    al,32h            ; '2'
  7841. F000:AA40  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7842. F000:AA42  EB 1F                jmp    short loc_647        ; (AA63)
  7843. F000:AA44            loc_645:                    ;  xref F000:AA79, AA8D
  7844. F000:AA44  B8 018F                mov    ax,18Fh
  7845. F000:AA47  E8 4448                call    sub_256            ; (EE92)
  7846. F000:AA4A  E8 E3F6                call    sub_33            ; (8E43)
  7847. F000:AA4D  E9 3700                jmp    loc_1198        ; (E150)
  7848.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 134
  7849.  
  7850.   
  7851.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  7852.   
  7853. F000:AA50            loc_646:                    ;  xref F000:80FB, 8102
  7854. F000:AA50  BE 8010                mov    si,8010h
  7855. F000:AA53  33 FF                xor    di,di            ; Zero register
  7856. F000:AA55  B9 0300                mov    cx,300h
  7857. F000:AA58  FA                    cli                ; Disable interrupts
  7858. F000:AA59  FC                    cld                ; Clear direction
  7859. F000:AA5A  26: F3/ A5                rep    movs word ptr es:[di],word ptr es:[si]    ; Rep when cx >0 Mov [si] to es:[di]
  7860. F000:AA5D  BE 7D36                mov    si,7D36h
  7861. F000:AA60  E9 E331                jmp    loc_229            ; (8D94)
  7862. F000:AA63            loc_647:                    ;  xref F000:AA42
  7863. F000:AA63  33 FF                xor    di,di            ; Zero register
  7864. F000:AA65  BE 0244                mov    si,244h
  7865. F000:AA68  B8 00FF                mov    ax,0FFh
  7866. F000:AA6B  BB 000F                mov    bx,0Fh
  7867. F000:AA6E  8A 16 0000                mov    dl,byte ptr @rs232_port_1    ; (0040:0000=0F8h)
  7868. F000:AA72  E8 017C                call    sub_124            ; (ABF1)
  7869. F000:AA75  3A 16 0000                cmp    dl,byte ptr @rs232_port_1    ; (0040:0000=0F8h)
  7870. F000:AA79  75 C9                jne    loc_645            ; Jump if not equal
  7871. F000:AA7B  50                    push    ax
  7872. F000:AA7C  B0 33                mov    al,33h            ; '3'
  7873. F000:AA7E  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7874. F000:AA80  B8 0009                mov    ax,9
  7875. F000:AA83  BB 0000                mov    bx,0
  7876. F000:AA86  E8 0168                call    sub_124            ; (ABF1)
  7877. F000:AA89  3A 16 0000                cmp    dl,byte ptr @rs232_port_1    ; (0040:0000=0F8h)
  7878. F000:AA8D  75 B5                jne    loc_645            ; Jump if not equal
  7879. F000:AA8F  50                    push    ax
  7880. F000:AA90  B0 34                mov    al,34h            ; '4'
  7881. F000:AA92  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7882. F000:AA94  58                    pop    ax
  7883. F000:AA95  BB 000A                mov    bx,0Ah
  7884. F000:AA98  C6 04 00                mov    byte ptr [si],0
  7885. F000:AA9B  C6 44 03 00                mov    byte ptr [si+3],0
  7886. F000:AA9F  33 D2                xor    dx,dx            ; Zero register
  7887. F000:AAA1  E8 0172                call    sub_125            ; (AC16)
  7888. F000:AAA4  B0 35                mov    al,35h            ; '5'
  7889. F000:AAA6  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7890. F000:AAA8  58                    pop    ax
  7891. F000:AAA9  52                    push    dx
  7892. F000:AAAA  33 D2                xor    dx,dx            ; Zero register
  7893. F000:AAAC  BB 0100                mov    bx,100h
  7894. F000:AAAF  C6 04 0F                mov    byte ptr [si],0Fh
  7895. F000:AAB2  C6 44 03 00                mov    byte ptr [si+3],0
  7896. F000:AAB6  E8 015D                call    sub_125            ; (AC16)
  7897. F000:AAB9  5B                    pop    bx
  7898. F000:AABA  87 DA                xchg    bx,dx
  7899. F000:AABC  B0 36                mov    al,36h            ; '6'
  7900. F000:AABE  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7901. F000:AAC0  68 AAC7                push    0AAC7h
  7902. F000:AAC3  68 FA4E                push    0FA4Eh
  7903. F000:AAC6  C3                    retn
  7904. F000:AAC7  B0 37 E6 80 0B ED            db    0B0h, 37h, 0E6h, 80h, 0Bh, 0EDh
  7905. F000:AACD  79 37 52 53 0B D2            db    79h, 37h, 52h, 53h, 0Bh, 0D2h
  7906. F000:AAD3  74 10 C6 04 00 C6            db    74h, 10h, 0C6h, 4, 0, 0C6h
  7907.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 135
  7908.  
  7909. F000:AAD9  44 03 00                db    44h, 3, 0
  7910. F000:AADC            loc_648:                    ;  xref F000:AAE3
  7911. F000:AADC  E8 02AB                call    sub_130            ; (AD8A)
  7912. F000:AADF  E8 02B5                call    sub_131            ; (AD97)
  7913. F000:AAE2  4A                    dec    dx
  7914. F000:AAE3  75 F7                jnz    loc_648            ; Jump if not zero
  7915. F000:AAE5  B0 38                mov    al,38h            ; '8'
  7916. F000:AAE7  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7917. F000:AAE9  0B DB                or    bx,bx            ; Zero ?
  7918. F000:AAEB  74 10                jz    short loc_650        ; Jump if zero
  7919. F000:AAED  C6 04 0F                mov    byte ptr [si],0Fh
  7920. F000:AAF0  C6 44 03 00                mov    byte ptr [si+3],0
  7921. F000:AAF4            loc_649:                    ;  xref F000:AAFB
  7922. F000:AAF4  E8 0293                call    sub_130            ; (AD8A)
  7923. F000:AAF7  E8 029D                call    sub_131            ; (AD97)
  7924. F000:AAFA  4B                    dec    bx
  7925. F000:AAFB  75 F7                jnz    loc_649            ; Jump if not zero
  7926. F000:AAFD            loc_650:                    ;  xref F000:AAEB
  7927. F000:AAFD  B0 39                mov    al,39h            ; '9'
  7928. F000:AAFF  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7929. F000:AB01  5B                    pop    bx
  7930. F000:AB02  5A                    pop    dx
  7931. F000:AB03  42                    inc    dx
  7932. F000:AB04  EB 38                jmp    short loc_652        ; (AB3E)
  7933. F000:AB06  55 BD 01 00 53 33            db    55h, 0BDh, 1, 0, 53h, 33h
  7934. F000:AB0C  DB B0 3A E6 80 E8            db    0DBh, 0B0h, 3Ah, 0E6h, 80h, 0E8h
  7935. F000:AB12  E4 01 C6 04 00 C6            db    0E4h, 1, 0C6h, 4, 0, 0C6h
  7936. F000:AB18  44 03 00 B0 3B E6            db    44h, 3, 0, 0B0h, 3Bh, 0E6h
  7937. F000:AB1E  80 E8 32 01 43 8B            db    80h, 0E8h, 32h, 1, 43h, 8Bh
  7938. F000:AB24  EB EB 00                db    0EBh, 0EBh, 0
  7939. F000:AB27            loc_651:
  7940. F000:AB27  90                    nop                ;
  7941. F000:AB28  5A                    pop    dx
  7942. F000:AB29  53                    push    bx
  7943. F000:AB2A  C6 04 0F                mov    byte ptr [si],0Fh
  7944. F000:AB2D  C6 44 03 00                mov    byte ptr [si+3],0
  7945. F000:AB31  B0 3C                mov    al,3Ch            ; '<'
  7946. F000:AB33  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7947. F000:AB35  E8 011C                call    sub_127            ; (AC54)
  7948. F000:AB38  5A                    pop    dx
  7949. F000:AB39  5D                    pop    bp
  7950. F000:AB3A  B0 3D                mov    al,3Dh            ; '='
  7951. F000:AB3C  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7952. F000:AB3E            loc_652:                    ;  xref F000:AB04
  7953. F000:AB3E  89 16 0013                mov    main_ram_size,dx    ; (0040:0013=280h)
  7954. F000:AB42  8A E3                mov    ah,bl
  7955. F000:AB44  B0 B0                mov    al,0B0h
  7956. F000:AB46  E8 4349                call    sub_256            ; (EE92)
  7957. F000:AB49  8A E7                mov    ah,bh
  7958. F000:AB4B  B0 B1                mov    al,0B1h
  7959. F000:AB4D  E8 4342                call    sub_256            ; (EE92)
  7960. F000:AB50  60                    pusha                ; Save all regs
  7961. F000:AB51  8B C4                mov    ax,sp
  7962. F000:AB53  A3 0067                mov    @gen_io_ptr,ax        ; (0040:0067=522h)
  7963. F000:AB56  B8 038F                mov    ax,38Fh
  7964. F000:AB59  E8 4336                call    sub_256            ; (EE92)
  7965. F000:AB5C  E8 E2E4                call    sub_33            ; (8E43)
  7966.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 136
  7967.  
  7968. F000:AB5F  B0 3E                mov    al,3Eh            ; '>'
  7969. F000:AB61  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7970. F000:AB63  E9 35EA                jmp    loc_1198        ; (E150)
  7971.   
  7972.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  7973.   
  7974. F000:AB66            loc_653:                    ;  xref F000:80FB, 8106
  7975. F000:AB66  B0 3F                mov    al,3Fh            ; '?'
  7976. F000:AB68  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7977. F000:AB6A  A1 0067                mov    ax,@gen_io_ptr        ; (0040:0067=522h)
  7978. F000:AB6D  8B E0                mov    sp,ax
  7979. F000:AB6F  61                    popa                ; Restore all regs
  7980. F000:AB70  EB 00                jmp    short loc_654        ; (AB72)
  7981. F000:AB72            loc_654:                    ;  xref F000:AB70
  7982. F000:AB72  90                    nop                ;
  7983. F000:AB73  B0 40                mov    al,40h            ; '@'
  7984. F000:AB75  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7985. F000:AB77  E8 E39A                call    sub_45            ; (8F14)
  7986. F000:AB7A  E8 E37A                call    sub_44            ; (8EF7)
  7987. F000:AB7D  75 38                jnz    short loc_657        ; Jump if not zero
  7988. F000:AB7F  B0 41                mov    al,41h            ; 'A'
  7989. F000:AB81  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  7990. F000:AB83  0F 01 E0                smsw    ax            ; Store machine stat
  7991. F000:AB86  F6 C4 FF                test    ah,0FFh
  7992. F000:AB89  75 0C                jnz    short loc_655        ; Jump if not zero
  7993. F000:AB8B  0F 20 C0                mov    eax,cr0            ; Mov reg-control reg
  7994. F000:AB8E  66| 25 9FFFFFFF            and    eax,9FFFFFFFh
  7995. F000:AB94  0F 22 C0                mov    cr0,eax            ; Mov reg-control reg
  7996. F000:AB97            loc_655:                    ;  xref F000:AB89
  7997. F000:AB97  E8 CB21                call    $-34DCh
  7998. F000:AB9A  B0 42                mov    al,42h            ; 'B'
  7999. F000:AB9C  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  8000. F000:AB9E  E8 CB2F                call    $-34CEh
  8001. F000:ABA1  B0 43                mov    al,43h            ; 'C'
  8002. F000:ABA3  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  8003. F000:ABA5  E8 0012                call    sub_121            ; (ABBA)
  8004. F000:ABA8  A0 0012                mov    al,init_test_flag    ; (0040:0012=0BFh)
  8005. F000:ABAB  A8 20                test    al,20h            ; ' '
  8006. F000:ABAD  75 05                jnz    short loc_656        ; Jump if not zero
  8007. F000:ABAF  B0 FE                mov    al,0FEh
  8008. F000:ABB1  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  8009.                                         ;  al = 0FEh, IRQ0 (timer) only
  8010. F000:ABB3  FB                    sti                ; Enable interrupts
  8011. F000:ABB4            loc_656:                    ;  xref F000:ABAD
  8012. F000:ABB4  E9 20B3                jmp    loc_1043        ; (CC6A)
  8013. F000:ABB7            loc_657:                    ;  xref F000:AB7D
  8014. F000:ABB7  E9 FE76                jmp    loc_643            ; (AA30)
  8015.   
  8016.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8017.                 ;                   SUBROUTINE
  8018.                 ;
  8019.                 ;         Called from:     F000:959F, ABA5
  8020.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8021.   
  8022.                 sub_121        proc    near
  8023. F000:ABBA  8B 16 0069                mov    dx,ds:data_43e        ; (C000:0069=4E45h)
  8024. F000:ABBE  B4 02                mov    ah,2
  8025.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 137
  8026.  
  8027. F000:ABC0  B7 00                mov    bh,0
  8028. F000:ABC2  E8 CA30                call    $-35CDh
  8029. F000:ABC5  B9 0050                mov    cx,seg seg_c
  8030.   
  8031. F000:ABC8            locloop_658:                    ;  xref F000:ABCE
  8032. F000:ABC8  B8 0E20                mov    ax,0E20h
  8033. F000:ABCB  E8 CA27                call    $-35D6h
  8034. F000:ABCE  E2 F8                loop    locloop_658        ; Loop if cx > 0
  8035.   
  8036. F000:ABD0  B4 02                mov    ah,2
  8037. F000:ABD2  E8 CA20                call    $-35DDh
  8038. F000:ABD5  C3                    retn
  8039.                 sub_121        endp
  8040.   
  8041.   
  8042.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8043.                 ;                   SUBROUTINE
  8044.                 ;
  8045.                 ;         Called from:     F000:AD38
  8046.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8047.   
  8048.                 sub_122        proc    near
  8049. F000:ABD6  B9 000A                mov    cx,0Ah
  8050. F000:ABD9  C1 E0 06                shl    ax,6            ; Shift w/zeros fill
  8051.   
  8052.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8053.                 ;
  8054.                 ;         Called from:     F000:ABE5
  8055.   
  8056.                 sub_123:
  8057. F000:ABDC  33 D2                xor    dx,dx            ; Zero register
  8058. F000:ABDE  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  8059. F000:ABE0  0B C0                or    ax,ax            ; Zero ?
  8060. F000:ABE2  74 05                jz    short loc_659        ; Jump if zero
  8061. F000:ABE4  52                    push    dx
  8062. F000:ABE5  E8 FFF4                call    sub_123            ; (ABDC)
  8063. F000:ABE8  5A                    pop    dx
  8064. F000:ABE9            loc_659:                    ;  xref F000:ABE2
  8065. F000:ABE9  8A C2                mov    al,dl
  8066. F000:ABEB  0C 30                or    al,30h            ; '0'
  8067. F000:ABED  E8 E1E2                call    sub_29            ; (8DD2)
  8068. F000:ABF0  C3                    retn
  8069.                 sub_122        endp
  8070.   
  8071.   
  8072.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8073.                 ;                   SUBROUTINE
  8074.                 ;
  8075.                 ;         Called from:     F000:AA72, AA86
  8076.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8077.   
  8078.                 sub_124        proc    near
  8079. F000:ABF1  88 04                mov    [si],al
  8080. F000:ABF3  88 64 03                mov    [si+3],ah
  8081. F000:ABF6            loc_660:                    ;  xref F000:AC0E, AC13
  8082. F000:ABF6  8C C1                mov    cx,es
  8083. F000:ABF8  8E C1                mov    es,cx
  8084.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 138
  8085.  
  8086. F000:ABFA  F9                    stc                ; Set carry flag
  8087. F000:ABFB            loc_661:                    ;  xref F000:AC02
  8088. F000:ABFB  26: 88 05                mov    es:[di],al
  8089. F000:ABFE  FE C8                dec    al
  8090. F000:AC00  D1 DF                rcr    di,1            ; Rotate thru carry
  8091. F000:AC02  73 F7                jnc    loc_661            ; Jump if carry=0
  8092. F000:AC04  80 2C 01                sub    byte ptr [si],1
  8093. F000:AC07  73 03                jnc    short loc_662        ; Jump if carry=0
  8094. F000:AC09  FE 4C 03                dec    byte ptr [si+3]
  8095. F000:AC0C            loc_662:                    ;  xref F000:AC07
  8096. F000:AC0C  3A 1C                cmp    bl,[si]
  8097. F000:AC0E  75 E6                jne    loc_660            ; Jump if not equal
  8098. F000:AC10  3A 7C 03                cmp    bh,[si+3]
  8099. F000:AC13  75 E1                jne    loc_660            ; Jump if not equal
  8100. F000:AC15  C3                    retn
  8101.                 sub_124        endp
  8102.   
  8103.   
  8104.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8105.                 ;                   SUBROUTINE
  8106.                 ;
  8107.                 ;         Called from:     F000:AAA1, AAB6
  8108.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8109.   
  8110.                 sub_125        proc    near
  8111. F000:AC16            loc_663:                    ;  xref F000:AC3F
  8112. F000:AC16  42                    inc    dx
  8113. F000:AC17  80 04 01                add    byte ptr [si],1
  8114. F000:AC1A  73 03                jnc    short loc_664        ; Jump if carry=0
  8115. F000:AC1C  FE 44 03                inc    byte ptr [si+3]
  8116. F000:AC1F            loc_664:                    ;  xref F000:AC1A
  8117. F000:AC1F  3A 1C                cmp    bl,[si]
  8118. F000:AC21  75 05                jne    short loc_665        ; Jump if not equal
  8119. F000:AC23  3A 7C 03                cmp    bh,[si+3]
  8120. F000:AC26  74 19                je    short loc_667        ; Jump if equal
  8121. F000:AC28            loc_665:                    ;  xref F000:AC21
  8122. F000:AC28  8C C1                mov    cx,es
  8123. F000:AC2A  8E C1                mov    es,cx
  8124. F000:AC2C  BF 0001                mov    di,1
  8125. F000:AC2F            loc_666:                    ;  xref F000:AC38
  8126. F000:AC2F  FE C0                inc    al
  8127. F000:AC31  26: 30 05                xor    es:[di],al
  8128. F000:AC34  75 0B                jnz    short loc_667        ; Jump if not zero
  8129. F000:AC36  D1 D7                rcl    di,1            ; Rotate thru carry
  8130. F000:AC38  73 F5                jnc    loc_666            ; Jump if carry=0
  8131. F000:AC3A  FE C0                inc    al
  8132. F000:AC3C  26: 30 05                xor    es:[di],al
  8133. F000:AC3F  74 D5                jz    loc_663            ; Jump if zero
  8134. F000:AC41            loc_667:                    ;  xref F000:AC26, AC34
  8135. F000:AC41  4A                    dec    dx
  8136. F000:AC42  C3                    retn
  8137.                 sub_125        endp
  8138.   
  8139.   
  8140.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8141.                 ;                   SUBROUTINE
  8142.                 ;
  8143.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 139
  8144.  
  8145.                 ;         Called from:     F000:AC9B, ACA9
  8146.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8147.   
  8148.                 sub_126        proc    near
  8149. F000:AC43            loc_668:
  8150. F000:AC43  F7 C7 FC3F                test    di,0FC3Fh
  8151. F000:AC47  7A 01                jp    short loc_669        ; Jump if parity=1
  8152. F000:AC49  F9                    stc                ; Set carry flag
  8153. F000:AC4A            loc_669:                    ;  xref F000:AC47
  8154. F000:AC4A  D1 DF                rcr    di,1            ; Rotate thru carry
  8155. F000:AC4C  A8 C3                test    al,0C3h
  8156. F000:AC4E  7A 01                jp    short loc_670        ; Jump if parity=1
  8157. F000:AC50  F9                    stc                ; Set carry flag
  8158. F000:AC51            loc_670:                    ;  xref F000:AC4E
  8159. F000:AC51  D0 D8                rcr    al,1            ; Rotate thru carry
  8160. F000:AC53  C3                    retn
  8161.                 sub_126        endp
  8162.   
  8163.   
  8164.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8165.                 ;                   SUBROUTINE
  8166.                 ;
  8167.                 ;         Called from:     F000:AB35
  8168.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8169.   
  8170.                 sub_127        proc    near
  8171. F000:AC54  33 DB                xor    bx,bx            ; Zero register
  8172. F000:AC56  0B D2                or    dx,dx            ; Zero ?
  8173. F000:AC58  74 76                jz    short loc_ret_679    ; Jump if zero
  8174. F000:AC5A  81 3E 0013 FEDC            cmp    main_ram_size,0FEDCh    ; (0040:0013=280h)
  8175. F000:AC60  74 75                je    short loc_681        ; Jump if equal
  8176. F000:AC62  B0 AE                mov    al,0AEh
  8177. F000:AC64  E8 E257                call    sub_40            ; (8EBE)
  8178. F000:AC67  E8 E278                call    sub_43            ; (8EE2)
  8179. F000:AC6A  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  8180. F000:AC6C  EB 00                jmp    short loc_671        ; (AC6E)
  8181. F000:AC6E            loc_671:                    ;  xref F000:AC6C
  8182. F000:AC6E  EB 00                jmp    short loc_672        ; (AC70)
  8183. F000:AC70            loc_672:                    ;  xref F000:AC6E, ACC1
  8184. F000:AC70  E4 64                in    al,64h            ; port 64h, keyboard status
  8185. F000:AC72  A8 01                test    al,1
  8186. F000:AC74  74 0A                jz    short loc_675        ; Jump if zero
  8187. F000:AC76  EB 00                jmp    short loc_673        ; (AC78)
  8188. F000:AC78            loc_673:                    ;  xref F000:AC76
  8189. F000:AC78  EB 00                jmp    short loc_674        ; (AC7A)
  8190. F000:AC7A            loc_674:                    ;  xref F000:AC78
  8191. F000:AC7A  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  8192. F000:AC7C  3C 01                cmp    al,1
  8193. F000:AC7E  74 51                je    short loc_680        ; Jump if equal
  8194. F000:AC80            loc_675:                    ;  xref F000:AC74
  8195. F000:AC80  E8 0107                call    sub_130            ; (AD8A)
  8196. F000:AC83  E8 E1BD                call    sub_33            ; (8E43)
  8197. F000:AC86  53                    push    bx
  8198. F000:AC87  E8 0117                call    sub_132            ; (ADA1)
  8199. F000:AC8A  5B                    pop    bx
  8200. F000:AC8B  75 59                jnz    short loc_682        ; Jump if not zero
  8201. F000:AC8D  26: 30 05                xor    es:[di],al
  8202.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 140
  8203.  
  8204. F000:AC90  8B FA                mov    di,dx
  8205. F000:AC92  8B C7                mov    ax,di
  8206. F000:AC94  B9 4000                mov    cx,4000h
  8207. F000:AC97  50                    push    ax
  8208. F000:AC98  51                    push    cx
  8209. F000:AC99  0A C4                or    al,ah
  8210.   
  8211. F000:AC9B            locloop_676:                    ;  xref F000:ACA1
  8212. F000:AC9B  E8 FFA5                call    sub_126            ; (AC43)
  8213. F000:AC9E  26: 88 05                mov    es:[di],al
  8214. F000:ACA1  E2 F8                loop    locloop_676        ; Loop if cx > 0
  8215.   
  8216. F000:ACA3  59                    pop    cx
  8217. F000:ACA4  58                    pop    ax
  8218. F000:ACA5  8B F8                mov    di,ax
  8219. F000:ACA7  0A C4                or    al,ah
  8220.   
  8221. F000:ACA9            locloop_677:                    ;  xref F000:ACAF
  8222. F000:ACA9  E8 FF97                call    sub_126            ; (AC43)
  8223. F000:ACAC  26: 30 05                xor    es:[di],al
  8224. F000:ACAF  E1 F8                loopz    locloop_677        ; Loop if zf=1, cx>0
  8225.   
  8226. F000:ACB1  75 33                jnz    short loc_682        ; Jump if not zero
  8227. F000:ACB3  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  8228. F000:ACB5  A8 C0                test    al,0C0h
  8229. F000:ACB7  75 2D                jnz    short loc_682        ; Jump if not zero
  8230. F000:ACB9  E8 00DB                call    sub_131            ; (AD97)
  8231. F000:ACBC  43                    inc    bx
  8232. F000:ACBD  E8 0038                call    sub_128            ; (ACF8)
  8233. F000:ACC0  4A                    dec    dx
  8234. F000:ACC1  75 AD                jnz    loc_672            ; Jump if not zero
  8235. F000:ACC3            loc_678:                    ;  xref F000:ACE4, ACF6
  8236. F000:ACC3  E8 E17D                call    sub_33            ; (8E43)
  8237. F000:ACC6  B0 AD                mov    al,0ADh
  8238. F000:ACC8  E8 E1F3                call    sub_40            ; (8EBE)
  8239. F000:ACCB  E8 E214                call    sub_43            ; (8EE2)
  8240. F000:ACCE  E4 60                in    al,60h            ; port 60h, keybd scan or sw1
  8241.   
  8242. F000:ACD0            loc_ret_679:                    ;  xref F000:AC58
  8243. F000:ACD0  C3                    retn
  8244. F000:ACD1            loc_680:                    ;  xref F000:AC7E
  8245. F000:ACD1  C7 06 0013 FEDC            mov    main_ram_size,0FEDCh    ; (0040:0013=280h)
  8246. F000:ACD7            loc_681:                    ;  xref F000:AC60, ACE2
  8247. F000:ACD7  E8 00B0                call    sub_130            ; (AD8A)
  8248. F000:ACDA  E8 00BA                call    sub_131            ; (AD97)
  8249. F000:ACDD  43                    inc    bx
  8250. F000:ACDE  E8 0017                call    sub_128            ; (ACF8)
  8251. F000:ACE1  4A                    dec    dx
  8252. F000:ACE2  75 F3                jnz    loc_681            ; Jump if not zero
  8253. F000:ACE4  EB DD                jmp    short loc_678        ; (ACC3)
  8254. F000:ACE6            loc_682:                    ;  xref F000:AC8B, ACB1, ACB7, ACF4
  8255. F000:ACE6  53                    push    bx
  8256. F000:ACE7  BB 0003                mov    bx,3
  8257. F000:ACEA  E8 E658                call    sub_50            ; (9345)
  8258. F000:ACED  5B                    pop    bx
  8259. F000:ACEE  FA                    cli                ; Disable interrupts
  8260. F000:ACEF  A0 0012                mov    al,init_test_flag    ; (0040:0012=0BFh)
  8261.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 141
  8262.  
  8263. F000:ACF2  A8 20                test    al,20h            ; ' '
  8264. F000:ACF4  74 F0                jz    loc_682            ; Jump if zero
  8265. F000:ACF6  EB CB                jmp    short loc_678        ; (ACC3)
  8266.                 sub_127        endp
  8267.   
  8268.   
  8269.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8270.                 ;                   SUBROUTINE
  8271.                 ;
  8272.                 ;         Called from:     F000:ACBD, ACDE
  8273.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8274.   
  8275.                 sub_128        proc    near
  8276. F000:ACF8  60                    pusha                ; Save all regs
  8277. F000:ACF9  8B C4                mov    ax,sp
  8278. F000:ACFB  A3 0067                mov    ds:data_42e,ax        ; (C000:0067=4449h)
  8279. F000:ACFE  B8 068F                mov    ax,68Fh
  8280. F000:AD01  E8 418E                call    sub_256            ; (EE92)
  8281. F000:AD04  E9 3449                jmp    loc_1198        ; (E150)
  8282.                 sub_128        endp
  8283.   
  8284.   
  8285.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8286.   
  8287. F000:AD07            loc_683:                    ;  xref F000:80FB, 810C
  8288. F000:AD07  A1 0067                mov    ax,@gen_io_ptr        ; (0040:0067=522h)
  8289. F000:AD0A  8B E0                mov    sp,ax
  8290. F000:AD0C  E8 00DA                call    sub_134            ; (ADE9)
  8291. F000:AD0F  B0 0D                mov    al,0Dh
  8292. F000:AD11  E8 E0BE                call    sub_29            ; (8DD2)
  8293. F000:AD14  61                    popa                ; Restore all regs
  8294. F000:AD15  60                    pusha                ; Save all regs
  8295. F000:AD16  8B C3                mov    ax,bx
  8296. F000:AD18  03 C5                add    ax,bp
  8297. F000:AD1A  50                    push    ax
  8298. F000:AD1B  3D 009D                cmp    ax,9Dh
  8299. F000:AD1E  73 16                jae    short loc_685        ; Jump if above or =
  8300. F000:AD20  B9 0001                mov    cx,1
  8301. F000:AD23  3C 10                cmp    al,10h
  8302. F000:AD25  73 08                jae    short locloop_684    ; Jump if above or =
  8303. F000:AD27  B1 02                mov    cl,2
  8304. F000:AD29  3C 02                cmp    al,2
  8305. F000:AD2B  73 02                jae    short locloop_684    ; Jump if above or =
  8306. F000:AD2D  B1 03                mov    cl,3
  8307.   
  8308. F000:AD2F            locloop_684:                    ;  xref F000:AD25, AD2B, AD34
  8309. F000:AD2F  B0 30                mov    al,30h            ; '0'
  8310. F000:AD31  E8 E09E                call    sub_29            ; (8DD2)
  8311. F000:AD34  E2 F9                loop    locloop_684        ; Loop if cx > 0
  8312.   
  8313. F000:AD36            loc_685:                    ;  xref F000:AD1E
  8314. F000:AD36  58                    pop    ax
  8315. F000:AD37  50                    push    ax
  8316. F000:AD38  E8 FE9B                call    sub_122            ; (ABD6)
  8317. F000:AD3B  BE 7D55                mov    si,7D55h
  8318. F000:AD3E  E8 E078                call    sub_27            ; (8DB9)
  8319. F000:AD41  58                    pop    ax
  8320.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 142
  8321.  
  8322. F000:AD42  48                    dec    ax
  8323. F000:AD43  75 19                jnz    short loc_686        ; Jump if not zero
  8324. F000:AD45  8B 16 0069                mov    dx,@gen_io_seg        ; (0040:0069=9087h)
  8325. F000:AD49  B7 00                mov    bh,0
  8326. F000:AD4B  B4 02                mov    ah,2
  8327. F000:AD4D  E8 C8A5                call    $-3758h
  8328. F000:AD50  BE 7E19                mov    si,7E19h
  8329. F000:AD53  E8 E063                call    sub_27            ; (8DB9)
  8330. F000:AD56  80 EE 02                sub    dh,2
  8331. F000:AD59  B4 02                mov    ah,2
  8332. F000:AD5B  E8 C897                call    $-3766h
  8333. F000:AD5E            loc_686:                    ;  xref F000:AD43
  8334. F000:AD5E  B8 028F                mov    ax,28Fh
  8335. F000:AD61  E8 412E                call    sub_256            ; (EE92)
  8336. F000:AD64  BE 0600                mov    si,600h
  8337. F000:AD67  BB 0800                mov    bx,800h
  8338. F000:AD6A  B4 89                mov    ah,89h
  8339. F000:AD6C  CD 15                int    15h            ; General services, ah=func 89h
  8340.                                         ;  set protected mode operation
  8341. F000:AD6E  75 0A                jnz    short loc_687        ; Jump if not zero
  8342. F000:AD70  E8 000A                call    sub_129            ; (AD7D)
  8343. F000:AD73  B8 0040                mov    ax,seg_b
  8344. F000:AD76  8E C0                mov    es,ax
  8345. F000:AD78  61                    popa                ; Restore all regs
  8346. F000:AD79  C3                    retn
  8347. F000:AD7A            loc_687:                    ;  xref F000:AD6E
  8348. F000:AD7A  E9 FCB3                jmp    loc_643            ; (AA30)
  8349.   
  8350.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8351.                 ;                   SUBROUTINE
  8352.                 ;
  8353.                 ;         Called from:     F000:AA36, AD70
  8354.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8355.   
  8356.                 sub_129        proc    near
  8357. F000:AD7D  A0 0012                mov    al,ds:data_31e        ; (C000:0012=45h)
  8358. F000:AD80  A8 20                test    al,20h            ; ' '
  8359. F000:AD82  75 05                jnz    short loc_ret_688    ; Jump if not zero
  8360. F000:AD84  B0 FE                mov    al,0FEh
  8361. F000:AD86  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  8362.                                         ;  al = 0FEh, IRQ0 (timer) only
  8363. F000:AD88  FB                    sti                ; Enable interrupts
  8364.   
  8365. F000:AD89            loc_ret_688:                    ;  xref F000:AD82
  8366. F000:AD89  C3                    retn
  8367.                 sub_129        endp
  8368.   
  8369.   
  8370.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8371.                 ;                   SUBROUTINE
  8372.                 ;
  8373.                 ;         Called from:     F000:AADC, AAF4, AC80, ACD7
  8374.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8375.   
  8376.                 sub_130        proc    near
  8377. F000:AD8A  80 04 01                add    byte ptr [si],1
  8378. F000:AD8D  73 03                jnc    short loc_689        ; Jump if carry=0
  8379.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 143
  8380.  
  8381. F000:AD8F  FE 44 03                inc    byte ptr [si+3]
  8382. F000:AD92            loc_689:                    ;  xref F000:AD8D
  8383. F000:AD92  8C C1                mov    cx,es
  8384. F000:AD94  8E C1                mov    es,cx
  8385. F000:AD96  C3                    retn
  8386.                 sub_130        endp
  8387.   
  8388.   
  8389.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8390.                 ;                   SUBROUTINE
  8391.                 ;
  8392.                 ;         Called from:     F000:AADF, AAF7, ACB9, ACDA, CE02
  8393.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8394.   
  8395.                 sub_131        proc    near
  8396. F000:AD97            loc_690:
  8397. F000:AD97  33 C0                xor    ax,ax            ; Zero register
  8398. F000:AD99  33 FF                xor    di,di            ; Zero register
  8399. F000:AD9B  B9 8000                mov    cx,8000h
  8400. F000:AD9E  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  8401. F000:ADA0  C3                    retn
  8402.                 sub_131        endp
  8403.   
  8404.   
  8405.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8406.                 ;                   SUBROUTINE
  8407.                 ;
  8408.                 ;         Called from:     F000:AC87
  8409.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8410.   
  8411.                 sub_132        proc    near
  8412. F000:ADA1  BB 8000                mov    bx,8000h
  8413.   
  8414.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8415.                 ;
  8416.                 ;         Called from:     F000:9375
  8417.   
  8418.                 sub_133:
  8419. F000:ADA4  B8 8080                mov    ax,8080h
  8420. F000:ADA7  8B CB                mov    cx,bx
  8421. F000:ADA9  33 FF                xor    di,di            ; Zero register
  8422. F000:ADAB  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  8423. F000:ADAD  8B CB                mov    cx,bx
  8424. F000:ADAF  33 FF                xor    di,di            ; Zero register
  8425. F000:ADB1  F3/ AF                repe    scasw            ; Rep zf=1+cx >0 Scan es:[di] for ax
  8426. F000:ADB3  75 33                jnz    short loc_ret_691    ; Jump if not zero
  8427. F000:ADB5  B8 5555                mov    ax,5555h
  8428. F000:ADB8  8B CB                mov    cx,bx
  8429. F000:ADBA  33 FF                xor    di,di            ; Zero register
  8430. F000:ADBC  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  8431. F000:ADBE  8B CB                mov    cx,bx
  8432. F000:ADC0  33 FF                xor    di,di            ; Zero register
  8433. F000:ADC2  F3/ AF                repe    scasw            ; Rep zf=1+cx >0 Scan es:[di] for ax
  8434. F000:ADC4  75 22                jnz    short loc_ret_691    ; Jump if not zero
  8435. F000:ADC6  B8 3333                mov    ax,3333h
  8436. F000:ADC9  8B CB                mov    cx,bx
  8437. F000:ADCB  33 FF                xor    di,di            ; Zero register
  8438.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 144
  8439.  
  8440. F000:ADCD  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  8441. F000:ADCF  8B CB                mov    cx,bx
  8442. F000:ADD1  33 FF                xor    di,di            ; Zero register
  8443. F000:ADD3  F3/ AF                repe    scasw            ; Rep zf=1+cx >0 Scan es:[di] for ax
  8444. F000:ADD5  75 11                jnz    short loc_ret_691    ; Jump if not zero
  8445. F000:ADD7  B8 0F0F                mov    ax,0F0Fh
  8446. F000:ADDA  8B CB                mov    cx,bx
  8447. F000:ADDC  33 FF                xor    di,di            ; Zero register
  8448. F000:ADDE  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  8449. F000:ADE0  8B CB                mov    cx,bx
  8450. F000:ADE2  33 FF                xor    di,di            ; Zero register
  8451. F000:ADE4  F3/ AF                repe    scasw            ; Rep zf=1+cx >0 Scan es:[di] for ax
  8452. F000:ADE6  75 00                jnz    short loc_ret_691    ; Jump if not zero
  8453.   
  8454. F000:ADE8            loc_ret_691:                    ;  xref F000:ADB3, ADC4, ADD5, ADE6
  8455. F000:ADE8  C3                    retn
  8456.                 sub_132        endp
  8457.   
  8458.   
  8459.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8460.                 ;                   SUBROUTINE
  8461.                 ;
  8462.                 ;         Called from:     F000:AD0C
  8463.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8464.   
  8465.                 sub_134        proc    near
  8466. F000:ADE9  B0 B6                mov    al,0B6h
  8467. F000:ADEB  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  8468. F000:ADED  32 C0                xor    al,al            ; Zero register
  8469. F000:ADEF  EB 00                jmp    short loc_692        ; (ADF1)
  8470. F000:ADF1            loc_692:                    ;  xref F000:ADEF
  8471. F000:ADF1  EB 00                jmp    short loc_693        ; (ADF3)
  8472. F000:ADF3            loc_693:                    ;  xref F000:ADF1
  8473. F000:ADF3  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  8474. F000:ADF5  EB 00                jmp    short loc_694        ; (ADF7)
  8475. F000:ADF7            loc_694:                    ;  xref F000:ADF5
  8476. F000:ADF7  EB 00                jmp    short loc_695        ; (ADF9)
  8477. F000:ADF9            loc_695:                    ;  xref F000:ADF7
  8478. F000:ADF9  E6 42                out    42h,al            ; port 42h, 8253 timer 2 spkr
  8479. F000:ADFB  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  8480. F000:ADFD  0C 03                or    al,3
  8481. F000:ADFF  EB 00                jmp    short loc_696        ; (AE01)
  8482. F000:AE01            loc_696:                    ;  xref F000:ADFF
  8483. F000:AE01  EB 00                jmp    short loc_697        ; (AE03)
  8484. F000:AE03            loc_697:                    ;  xref F000:AE01
  8485. F000:AE03  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  8486. F000:AE05  B9 00FF                mov    cx,0FFh
  8487.   
  8488. F000:AE08            locloop_698:                    ;  xref F000:AE08
  8489. F000:AE08  E2 FE                loop    locloop_698        ; Loop if cx > 0
  8490.   
  8491. F000:AE0A  24 FC                and    al,0FCh
  8492. F000:AE0C  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  8493.                                         ;  al = 0, disable parity
  8494. F000:AE0E  C3                    retn
  8495.                 sub_134        endp
  8496.   
  8497.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 145
  8498.  
  8499. F000:AE0F  00                    db    0
  8500. F000:AE10  AEAA            data_119    dw    offset loc_706        ; Data table (indexed access)
  8501.                                         ;  xref F000:AE57
  8502. F000:AE12  AEDE            data_120    dw    offset loc_710        ;  xref F000:AE57
  8503. F000:AE14  AFF7            data_121    dw    offset loc_735        ;  xref F000:AE57
  8504. F000:AE16  AFF7            data_122    dw    offset loc_735        ;  xref F000:AE57
  8505. F000:AE18  AFF7            data_123    dw    offset loc_735        ;  xref F000:AE57
  8506. F000:AE1A  B0EE            data_124    dw    offset loc_754        ;  xref F000:AE57
  8507. F000:AE1C  B1A6            data_125    dw    offset loc_763        ;  xref F000:AE57
  8508. F000:AE1E  AEE9            data_126    dw    offset loc_712        ;  xref F000:AE57
  8509. F000:AE20  AFA0            data_127    dw    offset loc_729        ;  xref F000:AE57
  8510. F000:AE22  AF2B            data_128    dw    offset loc_719        ;  xref F000:AE57
  8511. F000:AE24  B2FC            data_129    dw    offset loc_776        ;  xref F000:AE57
  8512.   
  8513.   
  8514.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 13h ▒▒▒▒▒
  8515.                 ;
  8516.                 ;   FLOPPY DISK    SERVICES
  8517.                 ;
  8518.                 ;      Note: Floppy disk services may be vectored to this routine from int 40h
  8519.                 ;            on    newer systems with hard disk support inside the    BIOS.
  8520.                 ;
  8521.                 ;      Call with: ah = sub-function number
  8522.                 ;          dl = drive number (unless otherwise noted), drive a: = 0
  8523.                 ;
  8524.                 ;      Returns:      carry    = 0 if function ok
  8525.                 ;          ah = status (unless otherwise noted)
  8526.                 ;            ah = 0    Function ok
  8527.                 ;            ah = 1    Invalid value passed or unsupported function
  8528.                 ;            ah = 2    Can not locate address mark
  8529.                 ;            ah = 3    Floppy write protected
  8530.                 ;            ah = 4    Sector not found
  8531.                 ;            ah = 6    Floppy changed line on (1.2 meg drives)
  8532.                 ;            ah = 8    DMA overrun occurred
  8533.                 ;            ah = 9    DMA attempted across 64K byte boundary
  8534.                 ;            ah = 0Ch  Media type not found
  8535.                 ;            ah = 10h  CRC read error
  8536.                 ;            ah = 20h  Floppy controller failure
  8537.                 ;            ah = 40h  Seek operation failed
  8538.                 ;            ah = 80h  Floppy drive not ready
  8539.                 ;
  8540.                 ;      Functions:
  8541.                 ;        ah = 0        Floppy disk controller reset
  8542.                 ;        ah = 1        Get    last status
  8543.                 ;        ah = 2        Read sectors
  8544.                 ;              Call with:  al = number of sectors to read
  8545.                 ;                      ch/cl = starting track/starting sector
  8546.                 ;                      dh = head number, head 0 = 0
  8547.                 ;                      es:bx = ptr to buffer where to put data
  8548.                 ;        ah = 3        Write sectors
  8549.                 ;              Call with:  al = number of sectors to write
  8550.                 ;                      ch/cl = starting track/starting sector
  8551.                 ;                      dh = head number, head 0 = 0
  8552.                 ;                      es:bx = ptr to buffer where to get data
  8553.                 ;              Return:     al = number of sectors written
  8554.                 ;        ah = 4        Verify sectors
  8555.                 ;              Call with:  al = number of sectors to compare
  8556.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 146
  8557.  
  8558.                 ;                      ch/cl = starting track/starting sector
  8559.                 ;                      dh = head number, head 0 = 0
  8560.                 ;                      es:bx = ptr to buffer where to compare data
  8561.                 ;              Return:     al = number of sectors checked
  8562.                 ;        ah = 5        Format track
  8563.                 ;              Call with:  al = number of sectors to format
  8564.                 ;                      ch/cl = starting track/starting sector
  8565.                 ;                      dh = head number, head 0 = 0
  8566.                 ;                      es:bx = ptr to table of address fields
  8567.                 ;        ah = 8        Get    drive information (not supported by all    systems)
  8568.                 ;              Returns:    ax/bh = 0          size dia.       size dia.
  8569.                 ;                      bl = drive type: 1=360K 5.25     3=720K 3.5
  8570.                 ;                                       2=1.2M 5.25     4=1.4M 3.5
  8571.                 ;                      cx bits 7&6, 15-8 = number of    tracks, 0=1 track
  8572.                 ;                         bits 5-0 = number of sectors per track
  8573.                 ;                      dh/dl = # of heads/number of floppy drives
  8574.                 ;                      es:di = ptr to floppy parameter table
  8575.                 ;        ah = 15h   Get    drive type (not supported by all systems)
  8576.                 ;              Returns:    ah = 0 no drive
  8577.                 ;                      ah = 1/2  floppy changed line    not/is available
  8578.                 ;        ah = 16h   Get    changed floppy status (not supported by    all systems)
  8579.                 ;              Returns:    ah = 0   floppy in drive,    carry = 0
  8580.                 ;                      ah = 1   bad drive number,    carry = 1
  8581.                 ;                      ah = 6   floppy out of drive,    carry = 1
  8582.                 ;                      ah = 80h drive not ready,    carry = 1
  8583.                 ;        ah = 17h   Specify media type for a drive
  8584.                 ;              Call with:  al = 1  use a 320/360K floppy    in 360k drive
  8585.                 ;                      al = 2  use a 360K floppy in a 1.2M drive
  8586.                 ;                      al = 3  use a 1.2M floppy in a 1.2M drive
  8587.                 ;                      al = 4  use a 720K disk in a 720K drive
  8588.                 ;        ah = 18h   Prepare for format (not supported by all systems)
  8589.                 ;              Call with:  cx bits 7&6, 15-8 = number of    tracks, 0=1 track
  8590.                 ;                         bits 5-0 = number of sectors per track
  8591.                 ;              Returns:    es:di = ptr to floppy parameter table
  8592.   
  8593. F000:AE26            int_13h_floppy    proc    near            ;  xref F000:EC59
  8594. F000:AE26  FB                    sti                ; Enable interrupts
  8595. F000:AE27  FC                    cld                ; Clear direction
  8596. F000:AE28  50                    push    ax
  8597. F000:AE29  51                    push    cx
  8598. F000:AE2A  52                    push    dx
  8599. F000:AE2B  53                    push    bx
  8600. F000:AE2C  55                    push    bp
  8601. F000:AE2D  56                    push    si
  8602. F000:AE2E  57                    push    di
  8603. F000:AE2F  1E                    push    ds
  8604. F000:AE30  06                    push    es
  8605. F000:AE31  55                    push    bp
  8606. F000:AE32  8B EC                mov    bp,sp
  8607. F000:AE34  6A 40                push    40h
  8608. F000:AE36  1F                    pop    ds
  8609. F000:AE37  50                    push    ax
  8610. F000:AE38  8A C4                mov    al,ah
  8611. F000:AE3A  3C 18                cmp    al,18h
  8612. F000:AE3C  77 62                ja    short loc_705        ; Jump if above
  8613. F000:AE3E  3C 05                cmp    al,5
  8614. F000:AE40  76 0E                jbe    short loc_700        ; Jump if below or =
  8615.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 147
  8616.  
  8617. F000:AE42  3C 08                cmp    al,8
  8618. F000:AE44  75 04                jne    short loc_699        ; Jump if not equal
  8619. F000:AE46  B0 06                mov    al,6
  8620. F000:AE48  EB 06                jmp    short loc_700        ; (AE50)
  8621. F000:AE4A            loc_699:                    ;  xref F000:AE44
  8622. F000:AE4A  3C 15                cmp    al,15h
  8623. F000:AE4C  72 52                jb    short loc_705        ; Jump if below
  8624. F000:AE4E  2C 0E                sub    al,0Eh
  8625. F000:AE50            loc_700:                    ;  xref F000:AE40, AE48
  8626. F000:AE50  98                    cbw                ; Convrt byte to word
  8627. F000:AE51  8B F8                mov    di,ax
  8628. F000:AE53  58                    pop    ax
  8629. F000:AE54  D1 E7                shl    di,1            ; Shift w/zeros fill
  8630. F000:AE56  2E: FF A5 AE10            jmp    word ptr cs:data_119[di]    ;*(F000:AE10=0AEAAh) 11 entries
  8631. F000:AE5B            loc_701:                    ;  xref F000:AF28, AF9D, AFF4, B0EB
  8632.                                         ;            B0FA, B1A3, B1B2, B280
  8633.                                         ;            B304, B3BA
  8634. F000:AE5B  8A C4                mov    al,ah
  8635. F000:AE5D  9F                    lahf                ; Load ah from flags
  8636. F000:AE5E  50                    push    ax
  8637. F000:AE5F  6A 40                push    40h
  8638. F000:AE61  1F                    pop    ds
  8639. F000:AE62  8A 46 0E                mov    al,[bp+0Eh]
  8640. F000:AE65  3C 01                cmp    al,1
  8641. F000:AE67  77 18                ja    short loc_702        ; Jump if above
  8642. F000:AE69  32 E4                xor    ah,ah            ; Zero register
  8643. F000:AE6B  BB 0090                mov    bx,90h
  8644. F000:AE6E  03 D8                add    bx,ax
  8645. F000:AE70  F6 07 10                test    byte ptr [bx],10h
  8646. F000:AE73  74 0C                jz    short loc_702        ; Jump if zero
  8647. F000:AE75  B2 04                mov    dl,4
  8648. F000:AE77  F6 E2                mul    dl            ; ax = reg * al
  8649. F000:AE79  8A C8                mov    cl,al
  8650. F000:AE7B  D2 E2                shl    dl,cl            ; Shift w/zeros fill
  8651. F000:AE7D  08 16 008F                or    hdsk_options,dl        ; (0040:008F=33h)
  8652. F000:AE81            loc_702:                    ;  xref F000:AE67, AE73
  8653. F000:AE81  58                    pop    ax
  8654. F000:AE82  9E                    sahf                ; Store ah into flags
  8655. F000:AE83  8A E0                mov    ah,al
  8656. F000:AE85            loc_703:                    ;  xref F000:AEA8, AECA, AEE7
  8657. F000:AE85  88 66 13                mov    [bp+13h],ah
  8658. F000:AE88  B8 0201                mov    ax,201h
  8659. F000:AE8B  72 05                jc    short loc_704        ; Jump if carry Set
  8660. F000:AE8D  80 66 18 FE                and    byte ptr [bp+18h],0FEh
  8661. F000:AE91  48                    dec    ax
  8662. F000:AE92            loc_704:                    ;  xref F000:AE8B
  8663. F000:AE92  09 46 18                or    [bp+18h],ax
  8664. F000:AE95  5D                    pop    bp
  8665. F000:AE96  07                    pop    es
  8666. F000:AE97  1F                    pop    ds
  8667. F000:AE98  5F                    pop    di
  8668. F000:AE99  5E                    pop    si
  8669. F000:AE9A  5D                    pop    bp
  8670. F000:AE9B  5B                    pop    bx
  8671. F000:AE9C  5A                    pop    dx
  8672. F000:AE9D  59                    pop    cx
  8673. F000:AE9E  58                    pop    ax
  8674.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 148
  8675.  
  8676. F000:AE9F  CF                    iret                ; Interrupt return
  8677.                 int_13h_floppy    endp
  8678.   
  8679. F000:AEA0            loc_705:                    ;  xref F000:AE3C, AE4C
  8680. F000:AEA0  58                    pop    ax
  8681. F000:AEA1  B4 01                mov    ah,1
  8682. F000:AEA3  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  8683. F000:AEA7  F9                    stc                ; Set carry flag
  8684. F000:AEA8  EB DB                jmp    short loc_703        ; (AE85)
  8685.   
  8686.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8687.   
  8688. F000:AEAA            loc_706:                    ;  xref F000:AE10, AE57
  8689. F000:AEAA  E8 001F                call    sub_135            ; (AECC)
  8690. F000:AEAD  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  8691. F000:AEB1  8A C4                mov    al,ah
  8692. F000:AEB3  9F                    lahf                ; Load ah from flags
  8693. F000:AEB4  50                    push    ax
  8694. F000:AEB5  1E                    push    ds
  8695. F000:AEB6  33 F6                xor    si,si            ; Zero register
  8696. F000:AEB8  8E DE                mov    ds,si
  8697. F000:AEBA  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  8698. F000:AEBE  8A 4C 02                mov    cl,[si+2]
  8699. F000:AEC1  1F                    pop    ds
  8700. F000:AEC2  88 0E 0040                mov    dsk_motor_tmr,cl    ; (0040:0040=9Fh)
  8701. F000:AEC6  58                    pop    ax
  8702. F000:AEC7  9E                    sahf                ; Store ah into flags
  8703. F000:AEC8  8A E0                mov    ah,al
  8704. F000:AECA  EB B9                jmp    short loc_703        ; (AE85)
  8705.   
  8706.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  8707.                 ;                   SUBROUTINE
  8708.                 ;
  8709.                 ;         Called from:     F000:AEAA, BA50
  8710.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  8711.   
  8712.                 sub_135        proc    near
  8713. F000:AECC  80 26 003E F0            and    dsk_recal_stat,0F0h    ; (0040:003E=0)
  8714. F000:AED1  E9 0D4F                jmp    loc_906            ; (BC23)
  8715.                 sub_135        endp
  8716.   
  8717. F000:AED4            loc_707:                    ;  xref F000:BC6B
  8718. F000:AED4  72 07                jc    short loc_ret_709    ; Jump if carry Set
  8719. F000:AED6  E9 0DCE                jmp    loc_913            ; (BCA7)
  8720. F000:AED9            loc_708:                    ;  xref F000:BCC6
  8721. F000:AED9  72 02                jc    short loc_ret_709    ; Jump if carry Set
  8722. F000:AEDB  32 E4                xor    ah,ah            ; Zero register
  8723.   
  8724. F000:AEDD            loc_ret_709:                    ;  xref F000:AED4, AED9
  8725. F000:AEDD  C3                    retn
  8726.   
  8727.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8728.   
  8729. F000:AEDE            loc_710:                    ;  xref F000:AE12, AE57
  8730. F000:AEDE  8A 26 0041                mov    ah,dsk_ret_code        ; (0040:0041=0)
  8731. F000:AEE2  0A E4                or    ah,ah            ; Zero ?
  8732. F000:AEE4  74 01                jz    short loc_711        ; Jump if zero
  8733.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 149
  8734.  
  8735. F000:AEE6  F9                    stc                ; Set carry flag
  8736. F000:AEE7            loc_711:                    ;  xref F000:AEE4
  8737. F000:AEE7  EB 9C                jmp    short loc_703        ; (AE85)
  8738.   
  8739.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8740.   
  8741. F000:AEE9            loc_712:                    ;  xref F000:AE1E, AE57
  8742. F000:AEE9  80 FA 01                cmp    dl,1
  8743. F000:AEEC  76 09                jbe    short loc_713        ; Jump if below or =
  8744. F000:AEEE  B4 01                mov    ah,1
  8745. F000:AEF0  F9                    stc                ; Set carry flag
  8746. F000:AEF1  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  8747. F000:AEF5  EB 31                jmp    short loc_718        ; (AF28)
  8748. F000:AEF7            loc_713:                    ;  xref F000:AEEC
  8749. F000:AEF7  EB 03                jmp    short loc_714        ; (AEFC)
  8750. F000:AEF9  90 7F 24                db    90h, 7Fh, 24h
  8751. F000:AEFC            loc_714:                    ;  xref F000:AEF7
  8752. F000:AEFC  BB 0090                mov    bx,90h
  8753. F000:AEFF  32 F6                xor    dh,dh            ; Zero register
  8754. F000:AF01  03 DA                add    bx,dx
  8755. F000:AF03  8A 1F                mov    bl,[bx]
  8756. F000:AF05  0A DB                or    bl,bl            ; Zero ?
  8757. F000:AF07  75 04                jnz    short loc_715        ; Jump if not zero
  8758. F000:AF09  32 E4                xor    ah,ah            ; Zero register
  8759. F000:AF0B  EB 15                jmp    short loc_717        ; (AF22)
  8760. F000:AF0D            loc_715:                    ;  xref F000:AF07
  8761. F000:AF0D  80 E3 07                and    bl,7
  8762. F000:AF10  74 0E                jz    short loc_716        ; Jump if zero
  8763. F000:AF12  80 FB 03                cmp    bl,3
  8764. F000:AF15  74 09                je    short loc_716        ; Jump if equal
  8765. F000:AF17  E8 0DAF                call    sub_162            ; (BCC9)
  8766. F000:AF1A  73 04                jnc    short loc_716        ; Jump if carry=0
  8767. F000:AF1C  B4 02                mov    ah,2
  8768. F000:AF1E  EB 02                jmp    short loc_717        ; (AF22)
  8769. F000:AF20            loc_716:                    ;  xref F000:AF10, AF15, AF1A
  8770. F000:AF20  B4 01                mov    ah,1
  8771. F000:AF22            loc_717:                    ;  xref F000:AF0B, AF1E
  8772. F000:AF22  F8                    clc                ; Clear carry flag
  8773. F000:AF23  C6 06 0041 00            mov    dsk_ret_code,0        ; (0040:0041=0)
  8774. F000:AF28            loc_718:                    ;  xref F000:AEF5
  8775. F000:AF28  E9 FF30                jmp    loc_701            ; (AE5B)
  8776.   
  8777.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8778.   
  8779. F000:AF2B            loc_719:                    ;  xref F000:AE22, AE57
  8780. F000:AF2B  32 E4                xor    ah,ah            ; Zero register
  8781. F000:AF2D  80 FA 01                cmp    dl,1
  8782. F000:AF30  76 09                jbe    short loc_722        ; Jump if below or =
  8783. F000:AF32            loc_720:                    ;  xref F000:AF3D, AF41
  8784. F000:AF32  B4 01                mov    ah,1
  8785. F000:AF34            loc_721:                    ;  xref F000:AF76, AF7B, AF96
  8786. F000:AF34  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  8787. F000:AF38  F9                    stc                ; Set carry flag
  8788. F000:AF39  EB 62                jmp    short loc_728        ; (AF9D)
  8789. F000:AF3B            loc_722:                    ;  xref F000:AF30
  8790. F000:AF3B  3C 00                cmp    al,0
  8791. F000:AF3D  74 F3                je    loc_720            ; Jump if equal
  8792.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 150
  8793.  
  8794. F000:AF3F  3C 04                cmp    al,4
  8795. F000:AF41  77 EF                ja    loc_720            ; Jump if above
  8796. F000:AF43  BB 0090                mov    bx,90h
  8797. F000:AF46  32 F6                xor    dh,dh            ; Zero register
  8798. F000:AF48  03 DA                add    bx,dx
  8799. F000:AF4A  3C 01                cmp    al,1
  8800. F000:AF4C  75 0A                jne    short loc_723        ; Jump if not equal
  8801. F000:AF4E  C6 07 93                mov    byte ptr [bx],93h
  8802. F000:AF51  C6 06 0041 00            mov    dsk_ret_code,0        ; (0040:0041=0)
  8803. F000:AF56  EB 3C                jmp    short loc_727        ; (AF94)
  8804. F000:AF58            loc_723:                    ;  xref F000:AF4C
  8805. F000:AF58  8B C8                mov    cx,ax
  8806. F000:AF5A  E8 0D6C                call    sub_162            ; (BCC9)
  8807. F000:AF5D  73 1E                jnc    short loc_724        ; Jump if carry=0
  8808. F000:AF5F  53                    push    bx
  8809. F000:AF60  E8 09E5                call    sub_147            ; (B948)
  8810. F000:AF63  5E                    pop    si
  8811. F000:AF64  56                    push    si
  8812. F000:AF65  E8 0AC2                call    sub_151            ; (BA2A)
  8813. F000:AF68  5B                    pop    bx
  8814. F000:AF69  80 FC 06                cmp    ah,6
  8815. F000:AF6C  76 0F                jbe    short loc_724        ; Jump if below or =
  8816. F000:AF6E  80 FC 80                cmp    ah,80h
  8817. F000:AF71  75 0A                jne    short loc_724        ; Jump if not equal
  8818. F000:AF73  80 3F 97                cmp    byte ptr [bx],97h
  8819. F000:AF76  74 BC                je    loc_721            ; Jump if equal
  8820. F000:AF78  C6 07 61                mov    byte ptr [bx],61h    ; 'a'
  8821. F000:AF7B  EB B7                jmp    short loc_721        ; (AF34)
  8822. F000:AF7D            loc_724:                    ;  xref F000:AF5D, AF6C, AF71
  8823. F000:AF7D  80 F9 04                cmp    cl,4
  8824. F000:AF80  75 05                jne    short loc_725        ; Jump if not equal
  8825. F000:AF82  C6 07 97                mov    byte ptr [bx],97h
  8826. F000:AF85  EB 0D                jmp    short loc_727        ; (AF94)
  8827. F000:AF87            loc_725:                    ;  xref F000:AF80
  8828. F000:AF87  80 F9 02                cmp    cl,2
  8829. F000:AF8A  75 05                jne    short loc_726        ; Jump if not equal
  8830. F000:AF8C  C6 07 74                mov    byte ptr [bx],74h    ; 't'
  8831. F000:AF8F  EB 03                jmp    short loc_727        ; (AF94)
  8832. F000:AF91            loc_726:                    ;  xref F000:AF8A
  8833. F000:AF91  C6 07 15                mov    byte ptr [bx],15h
  8834. F000:AF94            loc_727:                    ;  xref F000:AF56, AF85, AF8F
  8835. F000:AF94  0A E4                or    ah,ah            ; Zero ?
  8836. F000:AF96  75 9C                jnz    loc_721            ; Jump if not zero
  8837. F000:AF98  C6 06 0041 00            mov    byte ptr ds:data_37e,0    ; (C000:0041=0)
  8838. F000:AF9D            loc_728:                    ;  xref F000:AF39
  8839. F000:AF9D  E9 FEBB                jmp    loc_701            ; (AE5B)
  8840.   
  8841.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8842.   
  8843. F000:AFA0            loc_729:                    ;  xref F000:AE20, AE57
  8844. F000:AFA0  80 FA 01                cmp    dl,1
  8845. F000:AFA3  76 05                jbe    short loc_731        ; Jump if below or =
  8846. F000:AFA5  B4 01                mov    ah,1
  8847. F000:AFA7            loc_730:                    ;  xref F000:AFB6
  8848. F000:AFA7  F9                    stc                ; Set carry flag
  8849. F000:AFA8  EB 31                jmp    short loc_734        ; (AFDB)
  8850. F000:AFAA            loc_731:                    ;  xref F000:AFA3
  8851.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 151
  8852.  
  8853. F000:AFAA  32 F6                xor    dh,dh            ; Zero register
  8854. F000:AFAC  BB 0090                mov    bx,90h
  8855. F000:AFAF  03 DA                add    bx,dx
  8856. F000:AFB1  80 3F 00                cmp    byte ptr [bx],0
  8857. F000:AFB4  B4 80                mov    ah,80h
  8858. F000:AFB6  74 EF                jz    loc_730            ; Jump if zero
  8859. F000:AFB8  8A 27                mov    ah,[bx]
  8860. F000:AFBA  80 E4 07                and    ah,7
  8861. F000:AFBD  74 05                jz    short loc_732        ; Jump if zero
  8862. F000:AFBF  80 FC 03                cmp    ah,3
  8863. F000:AFC2  75 05                jne    short loc_733        ; Jump if not equal
  8864. F000:AFC4            loc_732:                    ;  xref F000:AFBD, AFCC, AFD7
  8865. F000:AFC4  B4 06                mov    ah,6
  8866. F000:AFC6  F9                    stc                ; Set carry flag
  8867. F000:AFC7  EB 12                jmp    short loc_734        ; (AFDB)
  8868. F000:AFC9            loc_733:                    ;  xref F000:AFC2
  8869. F000:AFC9  E8 0CFD                call    sub_162            ; (BCC9)
  8870. F000:AFCC  73 F6                jnc    loc_732            ; Jump if carry=0
  8871. F000:AFCE  E8 0977                call    sub_147            ; (B948)
  8872. F000:AFD1  BA 03F7                mov    dx,3F7h
  8873. F000:AFD4  EC                    in    al,dx            ; port 3F7h, dsk0 status C
  8874. F000:AFD5  D0 E0                shl    al,1            ; Shift w/zeros fill
  8875. F000:AFD7  72 EB                jc    loc_732            ; Jump if carry Set
  8876. F000:AFD9  32 E4                xor    ah,ah            ; Zero register
  8877. F000:AFDB            loc_734:                    ;  xref F000:AFA8, AFC7
  8878. F000:AFDB  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  8879. F000:AFDF  50                    push    ax
  8880. F000:AFE0  56                    push    si
  8881. F000:AFE1  1E                    push    ds
  8882. F000:AFE2  BE 0000                mov    si,0
  8883. F000:AFE5  8E DE                mov    ds,si
  8884. F000:AFE7  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  8885. F000:AFEB  8A 44 02                mov    al,[si+2]
  8886. F000:AFEE  1F                    pop    ds
  8887. F000:AFEF  A2 0040                mov    dsk_motor_tmr,al    ; (0040:0040=8Bh)
  8888. F000:AFF2  5E                    pop    si
  8889. F000:AFF3  58                    pop    ax
  8890. F000:AFF4  E9 FE64                jmp    loc_701            ; (AE5B)
  8891.   
  8892.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  8893.   
  8894. F000:AFF7            loc_735:                    ;  xref F000:AE14, AE16, AE18, AE57
  8895. F000:AFF7  80 FA 01                cmp    dl,1
  8896. F000:AFFA  76 0C                jbe    short loc_737        ; Jump if below or =
  8897. F000:AFFC  B4 01                mov    ah,1
  8898. F000:AFFE            loc_736:                    ;  xref F000:B01F, B050
  8899. F000:AFFE  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  8900. F000:B002  32 C0                xor    al,al            ; Zero register
  8901. F000:B004  F9                    stc                ; Set carry flag
  8902. F000:B005  E9 00E0                jmp    loc_753            ; (B0E8)
  8903. F000:B008            loc_737:                    ;  xref F000:AFFA
  8904. F000:B008  BE 0090                mov    si,90h
  8905. F000:B00B  52                    push    dx
  8906. F000:B00C  32 F6                xor    dh,dh            ; Zero register
  8907. F000:B00E  03 F2                add    si,dx
  8908. F000:B010  80 3C 00                cmp    byte ptr [si],0
  8909. F000:B013  5A                    pop    dx
  8910.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 152
  8911.  
  8912. F000:B014  75 13                jnz    short loc_740        ; Jump if not zero
  8913. F000:B016  50                    push    ax
  8914. F000:B017  E8 406A                call    sub_265            ; (F084)
  8915. F000:B01A  74 05                jz    short loc_739        ; Jump if zero
  8916. F000:B01C  58                    pop    ax
  8917. F000:B01D            loc_738:                    ;  xref F000:B024
  8918. F000:B01D  B4 80                mov    ah,80h
  8919. F000:B01F  EB DD                jmp    short loc_736        ; (AFFE)
  8920. F000:B021            loc_739:                    ;  xref F000:B01A
  8921. F000:B021  0A C0                or    al,al            ; Zero ?
  8922. F000:B023  58                    pop    ax
  8923. F000:B024  74 F7                jz    loc_738            ; Jump if zero
  8924. F000:B026  C6 04 02                mov    byte ptr [si],2
  8925. F000:B029            loc_740:                    ;  xref F000:B014
  8926. F000:B029  BF 003F                mov    di,3Fh
  8927. F000:B02C  80 25 7F                and    byte ptr [di],7Fh
  8928. F000:B02F  80 FC 03                cmp    ah,3
  8929. F000:B032  75 03                jne    short loc_741        ; Jump if not equal
  8930. F000:B034  80 0D 80                or    byte ptr [di],80h
  8931. F000:B037            loc_741:                    ;  xref F000:B032
  8932. F000:B037  56                    push    si
  8933. F000:B038  E8 4049                call    sub_265            ; (F084)
  8934. F000:B03B  75 07                jnz    short loc_742        ; Jump if not zero
  8935. F000:B03D  3C 01                cmp    al,1
  8936. F000:B03F  75 03                jne    short loc_742        ; Jump if not equal
  8937. F000:B041  C6 04 93                mov    byte ptr [si],93h
  8938. F000:B044            loc_742:                    ;  xref F000:B03B, B03F
  8939. F000:B044  E8 0901                call    sub_147            ; (B948)
  8940. F000:B047  E8 09E0                call    sub_151            ; (BA2A)
  8941. F000:B04A  5E                    pop    si
  8942. F000:B04B  73 0E                jnc    short loc_744        ; Jump if carry=0
  8943. F000:B04D            loc_743:                    ;  xref F000:B063, B08C, B0B1
  8944. F000:B04D  E8 0979                call    sub_148            ; (B9C9)
  8945. F000:B050  EB AC                jmp    short loc_736        ; (AFFE)
  8946. F000:B052  3C 03 75 EE C6 04            db    3Ch, 3, 75h, 0EEh, 0C6h, 4
  8947. F000:B058  97 EB E9                db    97h, 0EBh, 0E9h
  8948. F000:B05B            loc_744:                    ;  xref F000:B04B
  8949. F000:B05B  F6 04 10                test    byte ptr [si],10h
  8950. F000:B05E  75 07                jnz    short loc_745        ; Jump if not zero
  8951. F000:B060  E8 0774                call    sub_146            ; (B7D7)
  8952. F000:B063  72 E8                jc    loc_743            ; Jump if carry Set
  8953. F000:B065  EB 03                jmp    short loc_746        ; (B06A)
  8954. F000:B067            loc_745:                    ;  xref F000:B05E
  8955. F000:B067  E8 098A                call    sub_149            ; (B9F4)
  8956. F000:B06A            loc_746:                    ;  xref F000:B065
  8957. F000:B06A  BE 0090                mov    si,90h
  8958. F000:B06D  52                    push    dx
  8959. F000:B06E  32 F6                xor    dh,dh            ; Zero register
  8960. F000:B070  03 F2                add    si,dx
  8961. F000:B072  5A                    pop    dx
  8962. F000:B073  B8 DF03                mov    ax,0DF03h
  8963. F000:B076  80 3C 17                cmp    byte ptr [si],17h
  8964. F000:B079  75 02                jne    short loc_747        ; Jump if not equal
  8965. F000:B07B  B4 BF                mov    ah,0BFh
  8966. F000:B07D            loc_747:                    ;  xref F000:B079
  8967. F000:B07D  8B F0                mov    si,ax
  8968. F000:B07F  BF 0002                mov    di,2
  8969.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 153
  8970.  
  8971. F000:B082  B5 03                mov    ch,3
  8972. F000:B084  80 0E 003E 80            or    byte ptr ds:data_34e,80h    ; (C000:003E=39h)
  8973. F000:B089  E8 0AB0                call    sub_155            ; (BB3C)
  8974. F000:B08C  72 BF                jc    loc_743            ; Jump if carry Set
  8975. F000:B08E  8B 46 12                mov    ax,[bp+12h]
  8976. F000:B091  32 E4                xor    ah,ah            ; Zero register
  8977. F000:B093  1E                    push    ds
  8978. F000:B094  33 F6                xor    si,si            ; Zero register
  8979. F000:B096  8E DE                mov    ds,si
  8980. F000:B098  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  8981. F000:B09C  8A 4C 03                mov    cl,[si+3]
  8982. F000:B09F  D2 E0                shl    al,cl            ; Shift w/zeros fill
  8983. F000:B0A1  B1 80                mov    cl,80h
  8984. F000:B0A3  F6 E1                mul    cl            ; ax = reg * al
  8985. F000:B0A5  1F                    pop    ds
  8986. F000:B0A6  48                    dec    ax
  8987. F000:B0A7  8B C8                mov    cx,ax
  8988. F000:B0A9  E8 0A11                call    sub_153            ; (BABD)
  8989. F000:B0AC  73 05                jnc    short loc_748        ; Jump if carry=0
  8990. F000:B0AE  8B 4E 10                mov    cx,[bp+10h]
  8991. F000:B0B1  EB 9A                jmp    short loc_743        ; (B04D)
  8992. F000:B0B3            loc_748:                    ;  xref F000:B0AC
  8993. F000:B0B3  8B 46 12                mov    ax,[bp+12h]
  8994. F000:B0B6  80 FC 02                cmp    ah,2
  8995. F000:B0B9  75 04                jne    short loc_749        ; Jump if not equal
  8996. F000:B0BB  B4 46                mov    ah,46h            ; 'F'
  8997. F000:B0BD  EB 09                jmp    short loc_750        ; (B0C8)
  8998. F000:B0BF            loc_749:                    ;  xref F000:B0B9
  8999. F000:B0BF  80 FC 03                cmp    ah,3
  9000. F000:B0C2  B4 4A                mov    ah,4Ah            ; 'J'
  9001. F000:B0C4  74 02                jz    short loc_750        ; Jump if zero
  9002. F000:B0C6  B4 42                mov    ah,42h            ; 'B'
  9003. F000:B0C8            loc_750:                    ;  xref F000:B0BD, B0C4
  9004. F000:B0C8  E8 09B1                call    sub_152            ; (BA7C)
  9005. F000:B0CB  8B 46 12                mov    ax,[bp+12h]
  9006. F000:B0CE  8B 4E 10                mov    cx,[bp+10h]
  9007. F000:B0D1  E9 062C                jmp    loc_831            ; (B700)
  9008. F000:B0D4            loc_751:                    ;  xref F000:B7D4
  9009. F000:B0D4  E8 08F2                call    sub_148            ; (B9C9)
  9010. F000:B0D7  0A C0                or    al,al            ; Zero ?
  9011. F000:B0D9  74 04                jz    short loc_752        ; Jump if zero
  9012. F000:B0DB  2A D9                sub    bl,cl
  9013. F000:B0DD  8A C3                mov    al,bl
  9014. F000:B0DF            loc_752:                    ;  xref F000:B0D9
  9015. F000:B0DF  8A 26 0041                mov    ah,ds:data_37e        ; (C000:0041=0)
  9016. F000:B0E3  0A E4                or    ah,ah            ; Zero ?
  9017. F000:B0E5  74 01                jz    short loc_753        ; Jump if zero
  9018. F000:B0E7  F9                    stc                ; Set carry flag
  9019. F000:B0E8            loc_753:                    ;  xref F000:B005, B0E5
  9020. F000:B0E8  88 46 12                mov    [bp+12h],al
  9021. F000:B0EB  E9 FD6D                jmp    loc_701            ; (AE5B)
  9022.   
  9023.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  9024.   
  9025. F000:B0EE            loc_754:                    ;  xref F000:AE1A, AE57
  9026. F000:B0EE  80 FA 01                cmp    dl,1
  9027. F000:B0F1  76 0A                jbe    short loc_756        ; Jump if below or =
  9028.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 154
  9029.  
  9030. F000:B0F3  B4 01                mov    ah,1
  9031. F000:B0F5            loc_755:                    ;  xref F000:B10B, B11E
  9032. F000:B0F5  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  9033. F000:B0F9  F9                    stc                ; Set carry flag
  9034. F000:B0FA  E9 FD5E                jmp    loc_701            ; (AE5B)
  9035. F000:B0FD            loc_756:                    ;  xref F000:B0F1
  9036. F000:B0FD  BE 0090                mov    si,90h
  9037. F000:B100  52                    push    dx
  9038. F000:B101  32 F6                xor    dh,dh            ; Zero register
  9039. F000:B103  03 F2                add    si,dx
  9040. F000:B105  5A                    pop    dx
  9041. F000:B106  80 3C 00                cmp    byte ptr [si],0
  9042. F000:B109  B4 80                mov    ah,80h
  9043. F000:B10B  74 E8                jz    loc_755            ; Jump if zero
  9044. F000:B10D  BF 003F                mov    di,3Fh
  9045. F000:B110  80 0D 80                or    byte ptr [di],80h
  9046. F000:B113  E8 0832                call    sub_147            ; (B948)
  9047. F000:B116  E8 0911                call    sub_151            ; (BA2A)
  9048. F000:B119  73 05                jnc    short loc_758        ; Jump if carry=0
  9049. F000:B11B            loc_757:                    ;  xref F000:B13F
  9050. F000:B11B  E8 08AB                call    sub_148            ; (B9C9)
  9051. F000:B11E  EB D5                jmp    short loc_755        ; (B0F5)
  9052. F000:B120            loc_758:                    ;  xref F000:B119
  9053. F000:B120  E8 08D1                call    sub_149            ; (B9F4)
  9054. F000:B123  E8 0B81                call    sub_161            ; (BCA7)
  9055. F000:B126  1E                    push    ds
  9056. F000:B127  33 F6                xor    si,si            ; Zero register
  9057. F000:B129  8E DE                mov    ds,si
  9058. F000:B12B  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  9059. F000:B12F  8A 44 04                mov    al,[si+4]
  9060. F000:B132  1F                    pop    ds
  9061. F000:B133  32 E4                xor    ah,ah            ; Zero register
  9062. F000:B135  B1 04                mov    cl,4
  9063. F000:B137  F6 E1                mul    cl            ; ax = reg * al
  9064. F000:B139  8B C8                mov    cx,ax
  9065. F000:B13B  49                    dec    cx
  9066. F000:B13C  E8 097E                call    sub_153            ; (BABD)
  9067. F000:B13F  72 DA                jc    loc_757            ; Jump if carry Set
  9068. F000:B141  B4 4A                mov    ah,4Ah            ; 'J'
  9069. F000:B143  E8 0936                call    sub_152            ; (BA7C)
  9070. F000:B146  8B 4E 10                mov    cx,[bp+10h]
  9071. F000:B149  E8 04B7                call    sub_144            ; (B603)
  9072. F000:B14C  73 0D                jnc    short loc_760        ; Jump if carry=0
  9073. F000:B14E            loc_759:                    ;  xref F000:B183
  9074. F000:B14E  BB 0042                mov    bx,42h
  9075. F000:B151  B9 0007                mov    cx,7
  9076. F000:B154  50                    push    ax
  9077. F000:B155  E8 0A3E                call    sub_157            ; (BB96)
  9078. F000:B158  58                    pop    ax
  9079. F000:B159  EB 38                jmp    short loc_761        ; (B193)
  9080. F000:B15B            loc_760:                    ;  xref F000:B14C
  9081. F000:B15B  C0 E6 02                shl    dh,2            ; Shift w/zeros fill
  9082. F000:B15E  0A F2                or    dh,dl
  9083. F000:B160  B2 CD                mov    dl,0CDh
  9084. F000:B162  1E                    push    ds
  9085. F000:B163  33 F6                xor    si,si            ; Zero register
  9086. F000:B165  8E DE                mov    ds,si
  9087.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 155
  9088.  
  9089. F000:B167  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  9090. F000:B16B  50                    push    ax
  9091. F000:B16C  8B 44 07                mov    ax,[si+7]
  9092. F000:B16F  89 46 00                mov    [bp],ax
  9093. F000:B172  58                    pop    ax
  9094. F000:B173  8B 7C 03                mov    di,[si+3]
  9095. F000:B176  1F                    pop    ds
  9096. F000:B177  8B F2                mov    si,dx
  9097. F000:B179  B5 06                mov    ch,6
  9098. F000:B17B  80 26 003E 7F            and    dsk_recal_stat,7Fh    ; (0040:003E=0)
  9099. F000:B180  E8 09B9                call    sub_155            ; (BB3C)
  9100. F000:B183  72 C9                jc    loc_759            ; Jump if carry Set
  9101. F000:B185  BB 0042                mov    bx,42h
  9102. F000:B188  B9 0007                mov    cx,7
  9103. F000:B18B  E8 0A08                call    sub_157            ; (BB96)
  9104. F000:B18E  72 03                jc    short loc_761        ; Jump if carry Set
  9105. F000:B190  E8 0A50                call    sub_159            ; (BBE3)
  9106. F000:B193            loc_761:                    ;  xref F000:B159, B18E
  9107. F000:B193  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  9108. F000:B197  E8 082F                call    sub_148            ; (B9C9)
  9109. F000:B19A  8A 26 0041                mov    ah,dsk_ret_code        ; (0040:0041=0)
  9110. F000:B19E  0A E4                or    ah,ah            ; Zero ?
  9111. F000:B1A0  74 01                jz    short loc_762        ; Jump if zero
  9112. F000:B1A2  F9                    stc                ; Set carry flag
  9113. F000:B1A3            loc_762:                    ;  xref F000:B1A0
  9114. F000:B1A3  E9 FCB5                jmp    loc_701            ; (AE5B)
  9115.   
  9116.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  9117.   
  9118. F000:B1A6            loc_763:                    ;  xref F000:AE1C, AE57
  9119. F000:B1A6  80 FA 80                cmp    dl,80h
  9120. F000:B1A9  72 0A                jb    short loc_764        ; Jump if below
  9121. F000:B1AB  B4 01                mov    ah,1
  9122. F000:B1AD  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  9123. F000:B1B1  F9                    stc                ; Set carry flag
  9124. F000:B1B2  E9 FCA6                jmp    loc_701            ; (AE5B)
  9125. F000:B1B5            loc_764:                    ;  xref F000:B1A9
  9126. F000:B1B5  33 FF                xor    di,di            ; Zero register
  9127. F000:B1B7  33 F6                xor    si,si            ; Zero register
  9128. F000:B1B9  32 F6                xor    dh,dh            ; Zero register
  9129. F000:B1BB  A0 0010                mov    al,byte ptr equip_bits    ; (0040:0010=61h)
  9130. F000:B1BE  24 C1                and    al,0C1h
  9131. F000:B1C0  BF 0002                mov    di,2
  9132. F000:B1C3  3C 41                cmp    al,41h            ; 'A'
  9133. F000:B1C5  74 08                je    short loc_765        ; Jump if equal
  9134. F000:B1C7  4F                    dec    di
  9135. F000:B1C8  3C 01                cmp    al,1
  9136. F000:B1CA  74 03                je    short loc_765        ; Jump if equal
  9137. F000:B1CC  E9 00B4                jmp    loc_773            ; (B283)
  9138. F000:B1CF            loc_765:                    ;  xref F000:B1C5, B1CA
  9139. F000:B1CF  80 FA 01                cmp    dl,1
  9140. F000:B1D2  76 03                jbe    short loc_766        ; Jump if below or =
  9141. F000:B1D4  E9 00AE                jmp    loc_774            ; (B285)
  9142. F000:B1D7            loc_766:                    ;  xref F000:B1D2
  9143. F000:B1D7  B0 0E                mov    al,0Eh
  9144. F000:B1D9  E8 3CC3                call    sub_257            ; (EE9F)
  9145. F000:B1DC  A8 C0                test    al,0C0h
  9146.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 156
  9147.  
  9148. F000:B1DE  75 41                jnz    short loc_769        ; Jump if not zero
  9149. F000:B1E0  B0 10                mov    al,10h
  9150. F000:B1E2  E8 3CBA                call    sub_257            ; (EE9F)
  9151. F000:B1E5  0A D2                or    dl,dl            ; Zero ?
  9152. F000:B1E7  75 04                jnz    short loc_767        ; Jump if not zero
  9153. F000:B1E9  B1 04                mov    cl,4
  9154. F000:B1EB  D2 E8                shr    al,cl            ; Shift w/zeros fill
  9155. F000:B1ED            loc_767:                    ;  xref F000:B1E7
  9156. F000:B1ED  24 0F                and    al,0Fh
  9157. F000:B1EF  74 30                jz    short loc_769        ; Jump if zero
  9158. F000:B1F1  3C 04                cmp    al,4
  9159. F000:B1F3  77 2C                ja    short loc_769        ; Jump if above
  9160. F000:B1F5  32 E4                xor    ah,ah            ; Zero register
  9161. F000:B1F7  8B F0                mov    si,ax
  9162. F000:B1F9  8A F0                mov    dh,al
  9163. F000:B1FB  BB 0090                mov    bx,90h
  9164. F000:B1FE  02 DA                add    bl,dl
  9165. F000:B200  8A 07                mov    al,[bx]
  9166. F000:B202  A8 10                test    al,10h
  9167. F000:B204  75 44                jnz    short loc_771        ; Jump if not zero
  9168. F000:B206  83 FE 01                cmp    si,1
  9169. F000:B209  B0 93                mov    al,93h
  9170. F000:B20B  74 10                jz    short loc_768        ; Jump if zero
  9171. F000:B20D  83 FE 02                cmp    si,2
  9172. F000:B210  B0 02                mov    al,2
  9173. F000:B212  74 09                jz    short loc_768        ; Jump if zero
  9174. F000:B214  83 FE 03                cmp    si,3
  9175. F000:B217  B0 97                mov    al,97h
  9176. F000:B219  74 02                jz    short loc_768        ; Jump if zero
  9177. F000:B21B  B0 07                mov    al,7
  9178. F000:B21D            loc_768:                    ;  xref F000:B20B, B212, B219
  9179. F000:B21D  88 07                mov    [bx],al
  9180. F000:B21F  EB 29                jmp    short loc_771        ; (B24A)
  9181. F000:B221            loc_769:                    ;  xref F000:B1DE, B1EF, B1F3
  9182. F000:B221  BB 0090                mov    bx,90h
  9183. F000:B224  02 DA                add    bl,dl
  9184. F000:B226  8A 07                mov    al,[bx]
  9185. F000:B228  A8 10                test    al,10h
  9186. F000:B22A  74 67                jz    short loc_775        ; Jump if zero
  9187. F000:B22C  8A E0                mov    ah,al
  9188. F000:B22E  24 C0                and    al,0C0h
  9189. F000:B230  3C 80                cmp    al,80h
  9190. F000:B232  BE 0002                mov    si,2
  9191. F000:B235  75 0B                jnz    short loc_770        ; Jump if not zero
  9192. F000:B237  F6 C4 04                test    ah,4
  9193. F000:B23A  BE 0001                mov    si,1
  9194. F000:B23D  74 0B                jz    short loc_771        ; Jump if zero
  9195. F000:B23F  BE 0004                mov    si,4
  9196. F000:B242            loc_770:                    ;  xref F000:B235
  9197. F000:B242  F6 C4 07                test    ah,7
  9198. F000:B245  74 03                jz    short loc_771        ; Jump if zero
  9199. F000:B247  BE 0004                mov    si,4
  9200. F000:B24A            loc_771:                    ;  xref F000:B204, B21F, B23D, B245
  9201.                                         ;            B2A5
  9202. F000:B24A  8B DF                mov    bx,di
  9203. F000:B24C  8B FE                mov    di,si
  9204. F000:B24E  4F                    dec    di
  9205.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 157
  9206.  
  9207. F000:B24F  03 FF                add    di,di
  9208. F000:B251  2E: 8B 85 B2AB            mov    ax,cs:data_130[di]    ; (F000:B2AB=2709h)
  9209. F000:B256  C6 46 0F 01                mov    byte ptr [bp+0Fh],1
  9210. F000:B25A  2E: 8B BD B2B3            mov    di,cs:data_131[di]    ; (F000:B2B3=0B2BBh)
  9211. F000:B25F  0E                    push    cs
  9212. F000:B260  07                    pop    es
  9213. F000:B261            loc_772:                    ;  xref F000:B291
  9214. F000:B261  88 5E 0E                mov    [bp+0Eh],bl
  9215. F000:B264  88 66 11                mov    [bp+11h],ah
  9216. F000:B267  88 46 10                mov    [bp+10h],al
  9217. F000:B26A  88 76 0C                mov    [bp+0Ch],dh
  9218. F000:B26D  C6 46 0D 00                mov    byte ptr [bp+0Dh],0
  9219. F000:B271  8C 46 02                mov    [bp+2],es
  9220. F000:B274  89 7E 06                mov    [bp+6],di
  9221. F000:B277  88 26 0041                mov    ds:data_37e,ah        ; (C000:0041=0)
  9222. F000:B27B  33 C0                xor    ax,ax            ; Zero register
  9223. F000:B27D  88 46 12                mov    [bp+12h],al
  9224. F000:B280  E9 FBD8                jmp    loc_701            ; (AE5B)
  9225. F000:B283            loc_773:                    ;  xref F000:B1CC, B29C, B2A0, B2A9
  9226. F000:B283  33 FF                xor    di,di            ; Zero register
  9227. F000:B285            loc_774:                    ;  xref F000:B1D4
  9228. F000:B285  32 F6                xor    dh,dh            ; Zero register
  9229. F000:B287  33 C0                xor    ax,ax            ; Zero register
  9230. F000:B289  8E C0                mov    es,ax
  9231. F000:B28B  C6 46 0F 00                mov    byte ptr [bp+0Fh],0
  9232. F000:B28F  8B DF                mov    bx,di
  9233. F000:B291  EB CE                jmp    short loc_772        ; (B261)
  9234. F000:B293            loc_775:                    ;  xref F000:B22A
  9235. F000:B293  8B DF                mov    bx,di
  9236. F000:B295  B0 0E                mov    al,0Eh
  9237. F000:B297  E8 3C05                call    sub_257            ; (EE9F)
  9238. F000:B29A  A8 C0                test    al,0C0h
  9239. F000:B29C  75 E5                jnz    loc_773            ; Jump if not zero
  9240. F000:B29E  0B F6                or    si,si            ; Zero ?
  9241. F000:B2A0  74 E1                jz    loc_773            ; Jump if zero
  9242. F000:B2A2  83 FE 03                cmp    si,3
  9243. F000:B2A5  76 A3                jbe    loc_771            ; Jump if below or =
  9244. F000:B2A7  33 F6                xor    si,si            ; Zero register
  9245. F000:B2A9  EB D8                jmp    short loc_773        ; (B283)
  9246. F000:B2AB  2709            data_130    dw    2709h            ; Data table (indexed access)
  9247.                                         ;  xref F000:B252
  9248. F000:B2AD  0F 4F 09 4F 12 4F            db    0Fh, 4Fh, 9, 4Fh, 12h, 4Fh
  9249. F000:B2B3  B2BB            data_131    dw    0B2BBh            ; Data table (indexed access)
  9250.                                         ;  xref F000:B25B
  9251. F000:B2B5  C8 B2 D5 B2 E2 B2            db    0C8h, 0B2h, 0D5h, 0B2h, 0E2h, 0B2h
  9252. F000:B2BB  DF 02 25 02 09 2A            db    0DFh, 2, 25h, 2, 9, 2Ah
  9253. F000:B2C1  FF 50 F6 0F 08 27            db    0FFh, 50h, 0F6h, 0Fh, 8, 27h
  9254. F000:B2C7  80 DF 02 25 02 0F            db    80h, 0DFh, 2, 25h, 2, 0Fh
  9255. F000:B2CD  1B FF 54 F6 0F 08            db    1Bh, 0FFh, 54h, 0F6h, 0Fh, 8
  9256. F000:B2D3  4F 00 DF 02 25 02            db    4Fh, 0, 0DFh, 2, 25h, 2
  9257. F000:B2D9  09 2A FF 50 F6 0F            db    9, 2Ah, 0FFh, 50h, 0F6h, 0Fh
  9258. F000:B2DF  08 4F 80 AF 02 25            db    8, 4Fh, 80h, 0AFh, 2, 25h
  9259. F000:B2E5  02 12 1B FF 6C F6            db    2, 12h, 1Bh, 0FFh, 6Ch, 0F6h
  9260. F000:B2EB  0F 08 4F 00 DF 02            db    0Fh, 8, 4Fh, 0, 0DFh, 2
  9261. F000:B2F1  25 02 09 2A FF 50            db    25h, 2, 9, 2Ah, 0FFh, 50h
  9262. F000:B2F7  F6 0F 08                db    0F6h, 0Fh, 8
  9263. F000:B2FA  27 40                db    27h, 40h
  9264.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 158
  9265.  
  9266.   
  9267.                 ;───── Indexed Entry Point ────────────────────────────────────────────────
  9268.   
  9269. F000:B2FC            loc_776:                    ;  xref F000:AE24, AE57
  9270. F000:B2FC  80 FA 01                cmp    dl,1
  9271. F000:B2FF  76 06                jbe    short loc_778        ; Jump if below or =
  9272. F000:B301  B4 01                mov    ah,1
  9273. F000:B303            loc_777:                    ;  xref F000:B30E
  9274. F000:B303  F9                    stc                ; Set carry flag
  9275. F000:B304  E9 FB54                jmp    loc_701            ; (AE5B)
  9276. F000:B307            loc_778:                    ;  xref F000:B2FF
  9277. F000:B307  E8 3D7A                call    sub_265            ; (F084)
  9278. F000:B30A  74 04                jz    short loc_780        ; Jump if zero
  9279. F000:B30C            loc_779:                    ;  xref F000:B32C, B33C, B346, B355
  9280.                                         ;            B366
  9281. F000:B30C  B4 0C                mov    ah,0Ch
  9282. F000:B30E  EB F3                jmp    short loc_777        ; (B303)
  9283. F000:B310            loc_780:                    ;  xref F000:B30A
  9284. F000:B310  32 E4                xor    ah,ah            ; Zero register
  9285. F000:B312  8B F8                mov    di,ax
  9286. F000:B314  8A 56 0E                mov    dl,[bp+0Eh]
  9287. F000:B317  BB 0090                mov    bx,90h
  9288. F000:B31A  32 F6                xor    dh,dh            ; Zero register
  9289. F000:B31C  03 DA                add    bx,dx
  9290. F000:B31E  3C 01                cmp    al,1
  9291. F000:B320  75 0F                jne    short loc_781        ; Jump if not equal
  9292. F000:B322  8B 4E 10                mov    cx,[bp+10h]
  9293. F000:B325  81 F9 2709                cmp    cx,2709h
  9294. F000:B329  BE B2BB                mov    si,0B2BBh
  9295. F000:B32C  75 DE                jnz    loc_779            ; Jump if not zero
  9296. F000:B32E  E9 008C                jmp    loc_786            ; (B3BD)
  9297. F000:B331            loc_781:                    ;  xref F000:B320
  9298. F000:B331  3C 03                cmp    al,3
  9299. F000:B333  75 0B                jne    short loc_782        ; Jump if not equal
  9300. F000:B335  8B 4E 10                mov    cx,[bp+10h]
  9301. F000:B338  81 F9 4F09                cmp    cx,4F09h
  9302. F000:B33C  75 CE                jne    loc_779            ; Jump if not equal
  9303. F000:B33E  EB 28                jmp    short loc_784        ; (B368)
  9304. F000:B340            loc_782:                    ;  xref F000:B333
  9305. F000:B340  3C 04                cmp    al,4
  9306. F000:B342  74 15                je    short loc_783        ; Jump if equal
  9307. F000:B344  3C 02                cmp    al,2
  9308. F000:B346  75 C4                jne    loc_779            ; Jump if not equal
  9309. F000:B348  8B 4E 10                mov    cx,[bp+10h]
  9310. F000:B34B  81 F9 4F0F                cmp    cx,4F0Fh
  9311. F000:B34F  74 17                je    short loc_784        ; Jump if equal
  9312. F000:B351  81 F9 2709                cmp    cx,2709h
  9313. F000:B355  75 B5                jne    loc_779            ; Jump if not equal
  9314. F000:B357  EB 0F                jmp    short loc_784        ; (B368)
  9315. F000:B359            loc_783:                    ;  xref F000:B342
  9316. F000:B359  8B 4E 10                mov    cx,[bp+10h]
  9317. F000:B35C  81 F9 4F12                cmp    cx,4F12h
  9318. F000:B360  74 06                je    short loc_784        ; Jump if equal
  9319. F000:B362  81 F9 4F09                cmp    cx,4F09h
  9320. F000:B366  75 A4                jne    loc_779            ; Jump if not equal
  9321. F000:B368            loc_784:                    ;  xref F000:B33E, B34F, B357, B360
  9322. F000:B368  8B 4E 10                mov    cx,[bp+10h]
  9323.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 159
  9324.  
  9325. F000:B36B  81 F9 4F12                cmp    cx,4F12h
  9326. F000:B36F  B0 17                mov    al,17h
  9327. F000:B371  BE B2E2                mov    si,0B2E2h
  9328. F000:B374  B6 00                mov    dh,0
  9329. F000:B376  74 21                jz    short loc_785        ; Jump if zero
  9330. F000:B378  81 F9 4F09                cmp    cx,4F09h
  9331. F000:B37C  B0 97                mov    al,97h
  9332. F000:B37E  BE B2D5                mov    si,0B2D5h
  9333. F000:B381  B6 02                mov    dh,2
  9334. F000:B383  74 14                jz    short loc_785        ; Jump if zero
  9335. F000:B385  81 F9 4F0F                cmp    cx,4F0Fh
  9336. F000:B389  B0 15                mov    al,15h
  9337. F000:B38B  BE B2C8                mov    si,0B2C8h
  9338. F000:B38E  B6 00                mov    dh,0
  9339. F000:B390  74 07                jz    short loc_785        ; Jump if zero
  9340. F000:B392  B0 74                mov    al,74h            ; 't'
  9341. F000:B394  BE B2EF                mov    si,0B2EFh
  9342. F000:B397  B6 01                mov    dh,1
  9343. F000:B399            loc_785:                    ;  xref F000:B376, B383, B390, B3C1
  9344. F000:B399  88 07                mov    [bx],al
  9345. F000:B39B  52                    push    dx
  9346. F000:B39C  E8 0682                call    sub_150            ; (BA21)
  9347. F000:B39F  5A                    pop    dx
  9348. F000:B3A0  8A 07                mov    al,[bx]
  9349. F000:B3A2  24 C0                and    al,0C0h
  9350. F000:B3A4  80 26 008B 3F            and    byte ptr ds:data_53e,3Fh    ; (C000:008B=74h) '?'
  9351. F000:B3A9  08 06 008B                or    ds:data_53e,al        ; (C000:008B=74h)
  9352. F000:B3AD  89 76 06                mov    [bp+6],si
  9353. F000:B3B0  8C 4E 02                mov    [bp+2],cs
  9354. F000:B3B3  C6 06 0041 00            mov    byte ptr ds:data_37e,0    ; (C000:0041=0)
  9355. F000:B3B8  32 E4                xor    ah,ah            ; Zero register
  9356. F000:B3BA  E9 FA9E                jmp    loc_701            ; (AE5B)
  9357. F000:B3BD            loc_786:                    ;  xref F000:B32E
  9358. F000:B3BD  B6 02                mov    dh,2
  9359. F000:B3BF  B0 93                mov    al,93h
  9360. F000:B3C1  EB D6                jmp    short loc_785        ; (B399)
  9361.   
  9362.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9363.                 ;                   SUBROUTINE
  9364.                 ;
  9365.                 ;         Called from:     F000:947A
  9366.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9367.   
  9368.                 sub_136        proc    near
  9369. F000:B3C3  80 26 0010 3E            and    byte ptr ds:data_29e,3Eh    ; (C000:0010=20h) '>'
  9370. F000:B3C8  80 0E 0010 01            or    byte ptr ds:data_29e,1    ; (C000:0010=20h)
  9371. F000:B3CD  E8 016A                call    sub_142            ; (B53A)
  9372. F000:B3D0  BB 003E                mov    bx,3Eh
  9373. F000:B3D3  33 C0                xor    ax,ax            ; Zero register
  9374. F000:B3D5  B9 000B                mov    cx,0Bh
  9375.   
  9376. F000:B3D8            locloop_787:                    ;  xref F000:B3DB
  9377. F000:B3D8  88 07                mov    [bx],al
  9378. F000:B3DA  43                    inc    bx
  9379. F000:B3DB  E2 FB                loop    locloop_787        ; Loop if cx > 0
  9380.   
  9381. F000:B3DD  A2 008F                mov    ds:data_54e,al        ; (C000:008F=38h)
  9382.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 160
  9383.  
  9384. F000:B3E0  A3 0090                mov    ds:data_55e,ax        ; (C000:0090=2D37h)
  9385. F000:B3E3  A3 0092                mov    ds:data_57e,ax        ; (C000:0092=3931h)
  9386. F000:B3E6  A3 0094                mov    ds:data_58e,ax        ; (C000:0094=3039h)
  9387. F000:B3E9  A2 0096                mov    ds:data_59e,al        ; (C000:0096=20h)
  9388. F000:B3EC  B2 00                mov    dl,0
  9389. F000:B3EE  CD 13                int    13h            ; Disk  dl=drive #: ah=func a0h
  9390.                                         ;  reset disk, al=return status
  9391. F000:B3F0  73 03                jnc    short loc_788        ; Jump if carry=0
  9392. F000:B3F2  83 CD 01                or    bp,1
  9393. F000:B3F5            loc_788:                    ;  xref F000:B3F0
  9394. F000:B3F5  EB 00                jmp    short loc_789        ; (B3F7)
  9395. F000:B3F7            loc_789:                    ;  xref F000:B3F5
  9396. F000:B3F7  EB 00                jmp    short loc_790        ; (B3F9)
  9397. F000:B3F9            loc_790:                    ;  xref F000:B3F7
  9398. F000:B3F9  90                    nop                ;
  9399. F000:B3FA  B6 02                mov    dh,2
  9400. F000:B3FC  E8 0622                call    sub_150            ; (BA21)
  9401. F000:B3FF  32 F6                xor    dh,dh            ; Zero register
  9402. F000:B401  E8 001B                call    sub_137            ; (B41F)
  9403. F000:B404  FE C6                inc    dh
  9404. F000:B406  E8 0016                call    sub_137            ; (B41F)
  9405. F000:B409  8A 26 0091                mov    ah,byte ptr ds:data_55e+1    ; (C000:0091=2Dh)
  9406. F000:B40D  0A E4                or    ah,ah            ; Zero ?
  9407. F000:B40F  74 05                jz    short loc_791        ; Jump if zero
  9408. F000:B411  80 0E 0010 40            or    byte ptr ds:data_29e,40h    ; (C000:0010=20h) '@'
  9409. F000:B416            loc_791:                    ;  xref F000:B40F
  9410. F000:B416  E8 00D3                call    sub_140            ; (B4EC)
  9411. F000:B419  C6 06 003E 00            mov    byte ptr ds:data_34e,0    ; (C000:003E=39h)
  9412. F000:B41E  C3                    retn
  9413.                 sub_136        endp
  9414.   
  9415.   
  9416.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9417.                 ;                   SUBROUTINE
  9418.                 ;
  9419.                 ;         Called from:     F000:B401, B406
  9420.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9421.   
  9422.                 sub_137        proc    near
  9423. F000:B41F  B9 0002                mov    cx,2
  9424.   
  9425. F000:B422            locloop_792:                    ;  xref F000:B42C
  9426. F000:B422  8A D6                mov    dl,dh
  9427. F000:B424  E8 0521                call    sub_147            ; (B948)
  9428. F000:B427  E8 0176                call    sub_143            ; (B5A0)
  9429. F000:B42A  73 04                jnc    short loc_793        ; Jump if carry=0
  9430. F000:B42C  E2 F4                loop    locloop_792        ; Loop if cx > 0
  9431.   
  9432. F000:B42E  EB 55                jmp    short loc_ret_799    ; (B485)
  9433. F000:B430            loc_793:                    ;  xref F000:B42A
  9434. F000:B430  B2 0F                mov    dl,0Fh
  9435. F000:B432  8B F2                mov    si,dx
  9436. F000:B434  BF 0030                mov    di,30h
  9437. F000:B437  E8 004C                call    sub_138            ; (B486)
  9438. F000:B43A  72 49                jc    short loc_ret_799    ; Jump if carry Set
  9439. F000:B43C  BF 000A                mov    di,0Ah
  9440. F000:B43F            loc_794:                    ;  xref F000:B456
  9441.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 161
  9442.  
  9443. F000:B43F  B2 0F                mov    dl,0Fh
  9444. F000:B441  8B F2                mov    si,dx
  9445. F000:B443  E8 0040                call    sub_138            ; (B486)
  9446. F000:B446  72 3D                jc    short loc_ret_799    ; Jump if carry Set
  9447. F000:B448  B2 04                mov    dl,4
  9448. F000:B44A  8B F2                mov    si,dx
  9449. F000:B44C  E8 007F                call    sub_139            ; (B4CE)
  9450. F000:B44F  72 34                jc    short loc_ret_799    ; Jump if carry Set
  9451. F000:B451  0A ED                or    ch,ch            ; Zero ?
  9452. F000:B453  74 05                jz    short loc_795        ; Jump if zero
  9453. F000:B455  4F                    dec    di
  9454. F000:B456  79 E7                jns    loc_794            ; Jump if not sign
  9455. F000:B458  EB 2B                jmp    short loc_ret_799    ; (B485)
  9456. F000:B45A            loc_795:                    ;  xref F000:B453
  9457. F000:B45A  8A DE                mov    bl,dh
  9458. F000:B45C  32 FF                xor    bh,bh            ; Zero register
  9459. F000:B45E  C6 87 0090 93            mov    byte ptr ds:data_55e[bx],93h    ; (C000:0090=37h)
  9460. F000:B463  B5 04                mov    ch,4
  9461. F000:B465  0B FF                or    di,di            ; Zero ?
  9462. F000:B467  75 07                jnz    short loc_796        ; Jump if not zero
  9463. F000:B469  C6 87 0090 02            mov    byte ptr ds:data_55e[bx],2    ; (C000:0090=37h)
  9464. F000:B46E  B5 01                mov    ch,1
  9465. F000:B470            loc_796:                    ;  xref F000:B467
  9466. F000:B470  B0 04                mov    al,4
  9467. F000:B472  F6 E6                mul    dh            ; ax = reg * al
  9468. F000:B474  8A C8                mov    cl,al
  9469. F000:B476  D2 E5                shl    ch,cl            ; Shift w/zeros fill
  9470. F000:B478  08 2E 008F                or    ds:data_54e,ch        ; (C000:008F=38h)
  9471. F000:B47C  0B FF                or    di,di            ; Zero ?
  9472. F000:B47E  75 05                jnz    short loc_ret_799    ; Jump if not zero
  9473. F000:B480  EB 00                jmp    short loc_797        ; (B482)
  9474. F000:B482            loc_797:                    ;  xref F000:B480
  9475. F000:B482  EB 00                jmp    short loc_798        ; (B484)
  9476. F000:B484            loc_798:                    ;  xref F000:B482
  9477. F000:B484  90                    nop                ;
  9478.   
  9479. F000:B485            loc_ret_799:                    ;  xref F000:B42E, B43A, B446, B44F
  9480.                                         ;            B458, B47E
  9481. F000:B485  C3                    retn
  9482.                 sub_137        endp
  9483.   
  9484.   
  9485.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9486.                 ;                   SUBROUTINE
  9487.                 ;
  9488.                 ;         Called from:     F000:B437, B443
  9489.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9490.   
  9491.                 sub_138        proc    near
  9492. F000:B486  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  9493. F000:B48B  8B C6                mov    ax,si
  9494. F000:B48D  8A E0                mov    ah,al
  9495. F000:B48F  E8 06D7                call    sub_156            ; (BB69)
  9496. F000:B492  72 39                jc    short loc_ret_800    ; Jump if carry Set
  9497. F000:B494  8B C6                mov    ax,si
  9498. F000:B496  E8 06D0                call    sub_156            ; (BB69)
  9499. F000:B499  72 32                jc    short loc_ret_800    ; Jump if carry Set
  9500.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 162
  9501.  
  9502. F000:B49B  8B C7                mov    ax,di
  9503. F000:B49D  8A E0                mov    ah,al
  9504. F000:B49F  E8 06C7                call    sub_156            ; (BB69)
  9505. F000:B4A2  72 29                jc    short loc_ret_800    ; Jump if carry Set
  9506. F000:B4A4  B8 9001                mov    ax,9001h
  9507. F000:B4A7  CD 15                int    15h            ; General services, ah=func 90h
  9508.                                         ;  device busy, al=type
  9509. F000:B4A9  72 22                jc    short loc_ret_800    ; Jump if carry Set
  9510. F000:B4AB  E8 0828                call    sub_163            ; (BCD6)
  9511. F000:B4AE  72 1D                jc    short loc_ret_800    ; Jump if carry Set
  9512. F000:B4B0  B4 08                mov    ah,8
  9513. F000:B4B2  E8 06B4                call    sub_156            ; (BB69)
  9514. F000:B4B5  72 16                jc    short loc_ret_800    ; Jump if carry Set
  9515. F000:B4B7  E8 0700                call    sub_158            ; (BBBA)
  9516. F000:B4BA  72 11                jc    short loc_ret_800    ; Jump if carry Set
  9517. F000:B4BC  8A D8                mov    bl,al
  9518. F000:B4BE  E8 06F9                call    sub_158            ; (BBBA)
  9519. F000:B4C1  72 0A                jc    short loc_ret_800    ; Jump if carry Set
  9520. F000:B4C3  80 E3 60                and    bl,60h            ; '`'
  9521. F000:B4C6  80 FB 60                cmp    bl,60h            ; '`'
  9522. F000:B4C9  F8                    clc                ; Clear carry flag
  9523. F000:B4CA  75 01                jnz    short loc_ret_800    ; Jump if not zero
  9524. F000:B4CC  F9                    stc                ; Set carry flag
  9525.   
  9526. F000:B4CD            loc_ret_800:                    ;  xref F000:B492, B499, B4A2, B4A9
  9527.                                         ;            B4AE, B4B5, B4BA, B4C1
  9528.                                         ;            B4CA
  9529. F000:B4CD  C3                    retn
  9530.                 sub_138        endp
  9531.   
  9532.   
  9533.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9534.                 ;                   SUBROUTINE
  9535.                 ;
  9536.                 ;         Called from:     F000:B44C
  9537.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9538.   
  9539.                 sub_139        proc    near
  9540. F000:B4CE  8B C6                mov    ax,si
  9541. F000:B4D0  8A E0                mov    ah,al
  9542. F000:B4D2  E8 0694                call    sub_156            ; (BB69)
  9543. F000:B4D5  72 14                jc    short loc_ret_801    ; Jump if carry Set
  9544. F000:B4D7  8B C6                mov    ax,si
  9545. F000:B4D9  E8 068D                call    sub_156            ; (BB69)
  9546. F000:B4DC  72 0D                jc    short loc_ret_801    ; Jump if carry Set
  9547. F000:B4DE  E8 06D9                call    sub_158            ; (BBBA)
  9548. F000:B4E1  72 08                jc    short loc_ret_801    ; Jump if carry Set
  9549. F000:B4E3  B5 FF                mov    ch,0FFh
  9550. F000:B4E5  A8 10                test    al,10h
  9551. F000:B4E7  74 02                jz    short loc_ret_801    ; Jump if zero
  9552. F000:B4E9  32 ED                xor    ch,ch            ; Zero register
  9553.   
  9554. F000:B4EB            loc_ret_801:                    ;  xref F000:B4D5, B4DC, B4E1, B4E7
  9555. F000:B4EB  C3                    retn
  9556.                 sub_139        endp
  9557.   
  9558.   
  9559.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 163
  9560.  
  9561.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9562.                 ;                   SUBROUTINE
  9563.                 ;
  9564.                 ;         Called from:     F000:B416
  9565.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9566.   
  9567.                 sub_140        proc    near
  9568. F000:B4EC  BE 0090                mov    si,90h
  9569. F000:B4EF  B0 0E                mov    al,0Eh
  9570. F000:B4F1  E8 39AB                call    sub_257            ; (EE9F)
  9571. F000:B4F4  A8 C0                test    al,0C0h
  9572. F000:B4F6  75 1C                jnz    short loc_ret_802    ; Jump if not zero
  9573. F000:B4F8  B0 10                mov    al,10h
  9574. F000:B4FA  E8 39A2                call    sub_257            ; (EE9F)
  9575. F000:B4FD  8A E0                mov    ah,al
  9576. F000:B4FF  B1 04                mov    cl,4
  9577. F000:B501  D2 E8                shr    al,cl            ; Shift w/zeros fill
  9578. F000:B503  24 0F                and    al,0Fh
  9579. F000:B505  B1 00                mov    cl,0
  9580. F000:B507  E8 000B                call    sub_141            ; (B515)
  9581. F000:B50A  8A C4                mov    al,ah
  9582. F000:B50C  24 0F                and    al,0Fh
  9583. F000:B50E  46                    inc    si
  9584. F000:B50F  B1 04                mov    cl,4
  9585. F000:B511  E8 0001                call    sub_141            ; (B515)
  9586.   
  9587. F000:B514            loc_ret_802:                    ;  xref F000:B4F6
  9588. F000:B514  C3                    retn
  9589.                 sub_140        endp
  9590.   
  9591.   
  9592.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9593.                 ;                   SUBROUTINE
  9594.                 ;
  9595.                 ;         Called from:     F000:B507, B511
  9596.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9597.   
  9598.                 sub_141        proc    near
  9599. F000:B515  80 3C 00                cmp    byte ptr [si],0
  9600. F000:B518  74 1F                je    short loc_ret_806    ; Jump if equal
  9601. F000:B51A  80 3C 93                cmp    byte ptr [si],93h
  9602. F000:B51D  74 1A                je    short loc_ret_806    ; Jump if equal
  9603. F000:B51F  3C 03                cmp    al,3
  9604. F000:B521  75 07                jne    short loc_803        ; Jump if not equal
  9605. F000:B523  C6 04 97                mov    byte ptr [si],97h
  9606. F000:B526  B0 04                mov    al,4
  9607. F000:B528  EB 09                jmp    short loc_805        ; (B533)
  9608. F000:B52A            loc_803:                    ;  xref F000:B521
  9609. F000:B52A  3C 04                cmp    al,4
  9610. F000:B52C  75 03                jne    short loc_804        ; Jump if not equal
  9611. F000:B52E  C6 04 07                mov    byte ptr [si],7
  9612. F000:B531            loc_804:                    ;  xref F000:B52C
  9613. F000:B531  B0 02                mov    al,2
  9614. F000:B533            loc_805:                    ;  xref F000:B528
  9615. F000:B533  D2 E0                shl    al,cl            ; Shift w/zeros fill
  9616. F000:B535  08 06 008F                or    ds:data_54e,al        ; (C000:008F=38h)
  9617.   
  9618.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 164
  9619.  
  9620. F000:B539            loc_ret_806:                    ;  xref F000:B518, B51D
  9621. F000:B539  C3                    retn
  9622.                 sub_141        endp
  9623.   
  9624.   
  9625.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9626.                 ;                   SUBROUTINE
  9627.                 ;
  9628.                 ;         Called from:     F000:B3CD
  9629.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9630.   
  9631.                 sub_142        proc    near
  9632. F000:B53A  50                    push    ax
  9633. F000:B53B  51                    push    cx
  9634. F000:B53C  52                    push    dx
  9635. F000:B53D  BA 03F1                mov    dx,3F1h
  9636. F000:B540  EC                    in    al,dx            ; port 3F1h, dsk status B
  9637. F000:B541  24 F8                and    al,0F8h
  9638. F000:B543  3C 50                cmp    al,50h            ; 'P'
  9639. F000:B545  74 4F                je    short loc_818        ; Jump if equal
  9640. F000:B547  BA 05F7                mov    dx,5F7h
  9641. F000:B54A  EB 00                jmp    short loc_807        ; (B54C)
  9642. F000:B54C            loc_807:                    ;  xref F000:B54A
  9643. F000:B54C  EB 00                jmp    short loc_808        ; (B54E)
  9644. F000:B54E            loc_808:                    ;  xref F000:B54C
  9645. F000:B54E  EC                    in    al,dx            ; port 5F7h
  9646. F000:B54F  24 F0                and    al,0F0h
  9647. F000:B551  3C A0                cmp    al,0A0h
  9648. F000:B553  74 39                je    short loc_817        ; Jump if equal
  9649. F000:B555  BA 01F7                mov    dx,1F7h
  9650. F000:B558  B4 80                mov    ah,80h
  9651. F000:B55A  B9 0003                mov    cx,3
  9652.   
  9653. F000:B55D            locloop_809:                    ;  xref F000:B566
  9654. F000:B55D  51                    push    cx
  9655. F000:B55E  33 C9                xor    cx,cx            ; Zero register
  9656. F000:B560  E8 39F7                call    sub_260            ; (EF5A)
  9657. F000:B563  59                    pop    cx
  9658. F000:B564  73 09                jnc    short loc_810        ; Jump if carry=0
  9659. F000:B566  E2 F5                loop    locloop_809        ; Loop if cx > 0
  9660.   
  9661. F000:B568  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  9662. F000:B569  24 0C                and    al,0Ch
  9663. F000:B56B  74 29                jz    short loc_818        ; Jump if zero
  9664. F000:B56D  EB 1F                jmp    short loc_817        ; (B58E)
  9665. F000:B56F            loc_810:                    ;  xref F000:B564
  9666. F000:B56F  BA 01F4                mov    dx,1F4h
  9667. F000:B572  B0 AA                mov    al,0AAh
  9668. F000:B574  EE                    out    dx,al            ; port 1F4h, hdsk0-cylr,lo byte
  9669. F000:B575  EB 00                jmp    short loc_811        ; (B577)
  9670. F000:B577            loc_811:                    ;  xref F000:B575
  9671. F000:B577  EB 00                jmp    short loc_812        ; (B579)
  9672. F000:B579            loc_812:                    ;  xref F000:B577
  9673. F000:B579  EC                    in    al,dx            ; port 1F4h, hdsk0-cylr,lo byte
  9674. F000:B57A  3C AA                cmp    al,0AAh
  9675. F000:B57C  75 10                jne    short loc_817        ; Jump if not equal
  9676. F000:B57E  B0 55                mov    al,55h            ; 'U'
  9677.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 165
  9678.  
  9679. F000:B580  EB 00                jmp    short loc_813        ; (B582)
  9680. F000:B582            loc_813:                    ;  xref F000:B580
  9681. F000:B582  EB 00                jmp    short loc_814        ; (B584)
  9682. F000:B584            loc_814:                    ;  xref F000:B582
  9683. F000:B584  EE                    out    dx,al            ; port 1F4h, hdsk0-cylr,lo byte
  9684. F000:B585  EB 00                jmp    short loc_815        ; (B587)
  9685. F000:B587            loc_815:                    ;  xref F000:B585
  9686. F000:B587  EB 00                jmp    short loc_816        ; (B589)
  9687. F000:B589            loc_816:                    ;  xref F000:B587
  9688. F000:B589  EC                    in    al,dx            ; port 1F4h, hdsk0-cylr,lo byte
  9689. F000:B58A  3C 55                cmp    al,55h            ; 'U'
  9690. F000:B58C  74 08                je    short loc_818        ; Jump if equal
  9691. F000:B58E            loc_817:                    ;  xref F000:B553, B56D, B57C
  9692. F000:B58E  C6 06 008B 80            mov    byte ptr ds:data_53e,80h    ; (C000:008B=74h)
  9693. F000:B593  F9                    stc                ; Set carry flag
  9694. F000:B594  EB 06                jmp    short loc_819        ; (B59C)
  9695. F000:B596            loc_818:                    ;  xref F000:B545, B56B, B58C
  9696. F000:B596  C6 06 008B 81            mov    byte ptr ds:data_53e,81h    ; (C000:008B=74h)
  9697. F000:B59B  F8                    clc                ; Clear carry flag
  9698. F000:B59C            loc_819:                    ;  xref F000:B594
  9699. F000:B59C  5A                    pop    dx
  9700. F000:B59D  59                    pop    cx
  9701. F000:B59E  58                    pop    ax
  9702. F000:B59F  C3                    retn
  9703.                 sub_142        endp
  9704.   
  9705.   
  9706.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9707.                 ;                   SUBROUTINE
  9708.                 ;
  9709.                 ;         Called from:     F000:B427, B611, B616, B817, B81C, B836, B83B
  9710.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9711.   
  9712.                 sub_143        proc    near
  9713. F000:B5A0  51                    push    cx
  9714. F000:B5A1  52                    push    dx
  9715. F000:B5A2  8A F2                mov    dh,dl
  9716. F000:B5A4  B2 07                mov    dl,7
  9717. F000:B5A6  8B F2                mov    si,dx
  9718. F000:B5A8  B5 02                mov    ch,2
  9719. F000:B5AA  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  9720. F000:B5AF  E8 058A                call    sub_155            ; (BB3C)
  9721. F000:B5B2  72 48                jc    short loc_820        ; Jump if carry Set
  9722. F000:B5B4  BE 0008                mov    si,8
  9723. F000:B5B7  B5 01                mov    ch,1
  9724. F000:B5B9  80 0E 003E 80            or    byte ptr ds:data_34e,80h    ; (C000:003E=39h)
  9725. F000:B5BE  E8 057B                call    sub_155            ; (BB3C)
  9726. F000:B5C1  72 39                jc    short loc_820        ; Jump if carry Set
  9727. F000:B5C3  BB 0042                mov    bx,42h
  9728. F000:B5C6  B9 0002                mov    cx,2
  9729. F000:B5C9  E8 05CA                call    sub_157            ; (BB96)
  9730. F000:B5CC  72 2E                jc    short loc_820        ; Jump if carry Set
  9731. F000:B5CE  BB 0042                mov    bx,42h
  9732. F000:B5D1  B4 40                mov    ah,40h            ; '@'
  9733. F000:B5D3  8A 17                mov    dl,[bx]
  9734. F000:B5D5  80 E2 60                and    dl,60h            ; '`'
  9735. F000:B5D8  80 FA 60                cmp    dl,60h            ; '`'
  9736.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 166
  9737.  
  9738. F000:B5DB  F9                    stc                ; Set carry flag
  9739. F000:B5DC  74 1E                jz    short loc_820        ; Jump if zero
  9740. F000:B5DE  5A                    pop    dx
  9741. F000:B5DF  52                    push    dx
  9742. F000:B5E0  32 F6                xor    dh,dh            ; Zero register
  9743. F000:B5E2  BB 0094                mov    bx,94h
  9744. F000:B5E5  03 DA                add    bx,dx
  9745. F000:B5E7  C6 07 00                mov    byte ptr [bx],0
  9746. F000:B5EA  8A CA                mov    cl,dl
  9747. F000:B5EC  B2 01                mov    dl,1
  9748. F000:B5EE  D2 E2                shl    dl,cl            ; Shift w/zeros fill
  9749. F000:B5F0  08 16 003E                or    ds:data_34e,dl        ; (C000:003E=39h)
  9750. F000:B5F4  B9 0043                mov    cx,43h
  9751. F000:B5F7  E8 3A6E                call    sub_264            ; (F068)
  9752. F000:B5FA  32 E4                xor    ah,ah            ; Zero register
  9753. F000:B5FC            loc_820:                    ;  xref F000:B5B2, B5C1, B5CC, B5DC
  9754. F000:B5FC  88 26 0041                mov    ds:data_37e,ah        ; (C000:0041=0)
  9755. F000:B600  5A                    pop    dx
  9756. F000:B601  59                    pop    cx
  9757. F000:B602  C3                    retn
  9758.                 sub_143        endp
  9759.   
  9760.   
  9761.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  9762.                 ;                   SUBROUTINE
  9763.                 ;
  9764.                 ;         Called from:     F000:B149, B700, BA5A, BA61
  9765.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  9766.   
  9767.                 sub_144        proc    near
  9768. F000:B603  53                    push    bx
  9769. F000:B604  51                    push    cx
  9770. F000:B605  8A 26 003E                mov    ah,dsk_recal_stat    ; (0040:003E=0)
  9771. F000:B609  8A CA                mov    cl,dl
  9772. F000:B60B  FE C1                inc    cl
  9773. F000:B60D  D2 EC                shr    ah,cl            ; Shift w/zeros fill
  9774. F000:B60F  72 0D                jc    short loc_821        ; Jump if carry Set
  9775. F000:B611  E8 FF8C                call    sub_143            ; (B5A0)
  9776. F000:B614  73 08                jnc    short loc_821        ; Jump if carry=0
  9777. F000:B616  E8 FF87                call    sub_143            ; (B5A0)
  9778. F000:B619  73 03                jnc    short loc_821        ; Jump if carry=0
  9779. F000:B61B  E9 00DC                jmp    loc_830            ; (B6FA)
  9780. F000:B61E            loc_821:                    ;  xref F000:B60F, B614, B619
  9781. F000:B61E  BB 0094                mov    bx,94h
  9782. F000:B621  32 F6                xor    dh,dh            ; Zero register
  9783. F000:B623  03 DA                add    bx,dx
  9784. F000:B625  BE 0090                mov    si,90h
  9785. F000:B628  03 F2                add    si,dx
  9786. F000:B62A  8A D5                mov    dl,ch
  9787. F000:B62C  F6 04 20                test    byte ptr [si],20h    ; ' '
  9788. F000:B62F  74 02                jz    short loc_822        ; Jump if zero
  9789. F000:B631  02 D2                add    dl,dl
  9790. F000:B633            loc_822:                    ;  xref F000:B62F
  9791. F000:B633  38 17                cmp    [bx],dl
  9792. F000:B635  8B 56 0E                mov    dx,[bp+0Eh]
  9793. F000:B638  75 0C                jnz    short loc_823        ; Jump if not zero
  9794. F000:B63A  80 3E 0041 40            cmp    dsk_ret_code,40h    ; (0040:0041=0) '@'
  9795.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 167
  9796.  
  9797. F000:B63F  74 05                je    short loc_823        ; Jump if equal
  9798. F000:B641  32 E4                xor    ah,ah            ; Zero register
  9799. F000:B643  E9 00B4                jmp    loc_830            ; (B6FA)
  9800. F000:B646            loc_823:                    ;  xref F000:B638, B63F
  9801. F000:B646  C0 E6 02                shl    dh,2            ; Shift w/zeros fill
  9802. F000:B649  0A F2                or    dh,dl
  9803. F000:B64B  B2 0F                mov    dl,0Fh
  9804. F000:B64D  8B F2                mov    si,dx
  9805. F000:B64F  8A CD                mov    cl,ch
  9806. F000:B651  8B 56 0E                mov    dx,[bp+0Eh]
  9807. F000:B654  BB 0090                mov    bx,90h
  9808. F000:B657  32 F6                xor    dh,dh            ; Zero register
  9809. F000:B659  03 DA                add    bx,dx
  9810. F000:B65B  F6 07 20                test    byte ptr [bx],20h    ; ' '
  9811. F000:B65E  74 02                jz    short loc_824        ; Jump if zero
  9812. F000:B660  02 C9                add    cl,cl
  9813. F000:B662            loc_824:                    ;  xref F000:B65E
  9814. F000:B662  8B F9                mov    di,cx
  9815. F000:B664  B5 03                mov    ch,3
  9816. F000:B666  80 26 003E 7F            and    dsk_recal_stat,7Fh    ; (0040:003E=0)
  9817. F000:B66B  E8 04CE                call    sub_155            ; (BB3C)
  9818. F000:B66E  73 03                jnc    short loc_825        ; Jump if carry=0
  9819. F000:B670  E9 0083                jmp    loc_829            ; (B6F6)
  9820. F000:B673            loc_825:                    ;  xref F000:B66E
  9821. F000:B673  BE 0008                mov    si,8
  9822. F000:B676  B5 01                mov    ch,1
  9823. F000:B678  80 0E 003E 80            or    dsk_recal_stat,80h    ; (0040:003E=0)
  9824. F000:B67D  E8 04BC                call    sub_155            ; (BB3C)
  9825. F000:B680  72 74                jc    short loc_829        ; Jump if carry Set
  9826. F000:B682  BB 0042                mov    bx,42h
  9827. F000:B685  B9 0002                mov    cx,2
  9828. F000:B688  E8 050B                call    sub_157            ; (BB96)
  9829. F000:B68B  72 69                jc    short loc_829        ; Jump if carry Set
  9830. F000:B68D  BB 0042                mov    bx,42h
  9831. F000:B690  B4 40                mov    ah,40h            ; '@'
  9832. F000:B692  8A 17                mov    dl,[bx]
  9833. F000:B694  80 E2 60                and    dl,60h            ; '`'
  9834. F000:B697  80 FA 60                cmp    dl,60h            ; '`'
  9835. F000:B69A  F9                    stc                ; Set carry flag
  9836. F000:B69B  74 59                jz    short loc_829        ; Jump if zero
  9837. F000:B69D  8B 56 0E                mov    dx,[bp+0Eh]
  9838. F000:B6A0  59                    pop    cx
  9839. F000:B6A1  51                    push    cx
  9840. F000:B6A2  BE 0094                mov    si,94h
  9841. F000:B6A5  32 F6                xor    dh,dh            ; Zero register
  9842. F000:B6A7  03 F2                add    si,dx
  9843. F000:B6A9  88 2C                mov    [si],ch
  9844. F000:B6AB  BB 0090                mov    bx,90h
  9845. F000:B6AE  03 DA                add    bx,dx
  9846. F000:B6B0  8A 1F                mov    bl,[bx]
  9847. F000:B6B2  F6 C3 20                test    bl,20h            ; ' '
  9848. F000:B6B5  74 02                jz    short loc_826        ; Jump if zero
  9849. F000:B6B7  00 2C                add    [si],ch
  9850. F000:B6B9            loc_826:                    ;  xref F000:B6B5
  9851. F000:B6B9  1E                    push    ds
  9852. F000:B6BA  33 F6                xor    si,si            ; Zero register
  9853. F000:B6BC  8E DE                mov    ds,si
  9854.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 168
  9855.  
  9856. F000:B6BE  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  9857. F000:B6C2  8A 44 09                mov    al,[si+9]
  9858. F000:B6C5  1F                    pop    ds
  9859. F000:B6C6  F6 06 003F 80            test    dsk_motor_stat,80h    ; (0040:003F=0)
  9860. F000:B6CB  74 19                jz    short loc_827        ; Jump if zero
  9861. F000:B6CD  0A C0                or    al,al            ; Zero ?
  9862. F000:B6CF  75 15                jnz    short loc_827        ; Jump if not zero
  9863. F000:B6D1  80 FB 17                cmp    bl,17h
  9864. F000:B6D4  B0 0F                mov    al,0Fh
  9865. F000:B6D6  74 0E                jz    short loc_827        ; Jump if zero
  9866. F000:B6D8  80 E3 07                and    bl,7
  9867. F000:B6DB  B0 14                mov    al,14h
  9868. F000:B6DD  74 07                jz    short loc_827        ; Jump if zero
  9869. F000:B6DF  80 FB 03                cmp    bl,3
  9870. F000:B6E2  74 02                je    short loc_827        ; Jump if equal
  9871. F000:B6E4  B0 0F                mov    al,0Fh
  9872. F000:B6E6            loc_827:                    ;  xref F000:B6CB, B6CF, B6D6, B6DD
  9873.                                         ;            B6E2, B6F2
  9874. F000:B6E6  0A C0                or    al,al            ; Zero ?
  9875. F000:B6E8  74 0A                jz    short loc_828        ; Jump if zero
  9876. F000:B6EA  B9 0043                mov    cx,43h
  9877. F000:B6ED  E8 3978                call    sub_264            ; (F068)
  9878. F000:B6F0  FE C8                dec    al
  9879. F000:B6F2  EB F2                jmp    short loc_827        ; (B6E6)
  9880. F000:B6F4            loc_828:                    ;  xref F000:B6E8
  9881. F000:B6F4  32 E4                xor    ah,ah            ; Zero register
  9882. F000:B6F6            loc_829:                    ;  xref F000:B670, B680, B68B, B69B
  9883. F000:B6F6  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  9884. F000:B6FA            loc_830:                    ;  xref F000:B61B, B643
  9885. F000:B6FA  8B 56 0E                mov    dx,[bp+0Eh]
  9886. F000:B6FD  59                    pop    cx
  9887. F000:B6FE  5B                    pop    bx
  9888. F000:B6FF  C3                    retn
  9889.                 sub_144        endp
  9890.   
  9891. F000:B700            loc_831:                    ;  xref F000:B0D1
  9892. F000:B700  E8 FF00                call    sub_144            ; (B603)
  9893. F000:B703  73 10                jnc    short loc_833        ; Jump if carry=0
  9894. F000:B705            loc_832:                    ;  xref F000:B7B2
  9895. F000:B705  B0 00                mov    al,0
  9896. F000:B707  50                    push    ax
  9897. F000:B708  BB 0042                mov    bx,42h
  9898. F000:B70B  B9 0007                mov    cx,7
  9899. F000:B70E  E8 0485                call    sub_157            ; (BB96)
  9900. F000:B711  58                    pop    ax
  9901. F000:B712  E9 00B2                jmp    loc_843            ; (B7C7)
  9902. F000:B715            loc_833:                    ;  xref F000:B703
  9903. F000:B715  1E                    push    ds
  9904. F000:B716  33 F6                xor    si,si            ; Zero register
  9905. F000:B718  8E DE                mov    ds,si
  9906. F000:B71A  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  9907. F000:B71E  8B 44 02                mov    ax,[si+2]
  9908. F000:B721  25 FF00                and    ax,0FF00h
  9909. F000:B724  8A C1                mov    al,cl
  9910. F000:B726  89 46 00                mov    [bp],ax
  9911. F000:B729  8B 5C 04                mov    bx,[si+4]
  9912. F000:B72C  8A 4C 06                mov    cl,[si+6]
  9913.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 169
  9914.  
  9915. F000:B72F  1F                    pop    ds
  9916. F000:B730  BE 0090                mov    si,90h
  9917. F000:B733  32 F6                xor    dh,dh            ; Zero register
  9918. F000:B735  03 F2                add    si,dx
  9919. F000:B737  8A 14                mov    dl,[si]
  9920. F000:B739  80 E2 07                and    dl,7
  9921. F000:B73C  B6 1B                mov    dh,1Bh
  9922. F000:B73E  80 FA 05                cmp    dl,5
  9923. F000:B741  74 0E                je    short loc_834        ; Jump if equal
  9924. F000:B743  80 3C 17                cmp    byte ptr [si],17h
  9925. F000:B746  74 09                je    short loc_834        ; Jump if equal
  9926. F000:B748  B6 23                mov    dh,23h            ; '#'
  9927. F000:B74A  80 FA 04                cmp    dl,4
  9928. F000:B74D  74 02                je    short loc_834        ; Jump if equal
  9929. F000:B74F  B6 2A                mov    dh,2Ah            ; '*'
  9930. F000:B751            loc_834:                    ;  xref F000:B741, B746, B74D
  9931. F000:B751  8A FE                mov    bh,dh
  9932. F000:B753  8B 56 0E                mov    dx,[bp+0Eh]
  9933. F000:B756  51                    push    cx
  9934. F000:B757  8A CD                mov    cl,ch
  9935. F000:B759  8A EE                mov    ch,dh
  9936. F000:B75B  8B F9                mov    di,cx
  9937. F000:B75D  C0 E6 02                shl    dh,2            ; Shift w/zeros fill
  9938. F000:B760  0A F2                or    dh,dl
  9939. F000:B762  B2 E6                mov    dl,0E6h
  9940. F000:B764  8B 46 12                mov    ax,[bp+12h]
  9941. F000:B767  80 FC 03                cmp    ah,3
  9942. F000:B76A  75 02                jne    short loc_835        ; Jump if not equal
  9943. F000:B76C  B2 C5                mov    dl,0C5h
  9944. F000:B76E            loc_835:                    ;  xref F000:B76A
  9945. F000:B76E  8B F2                mov    si,dx
  9946. F000:B770  59                    pop    cx
  9947. F000:B771  B5 09                mov    ch,9
  9948. F000:B773  80 26 003E 7F            and    dsk_recal_stat,7Fh    ; (0040:003E=0)
  9949. F000:B778  80 FC 04                cmp    ah,4
  9950. F000:B77B  EB 30                jmp    short loc_839        ; (B7AD)
  9951. F000:B77D  52 50 BA 61 04 E4            db    52h, 50h, 0BAh, 61h, 4, 0E4h
  9952. F000:B783  21 8A E0 0C 02 EB            db    21h, 8Ah, 0E0h, 0Ch, 2, 0EBh
  9953. F000:B789  00 EB 00                db    0, 0EBh, 0
  9954. F000:B78C            loc_836:
  9955. F000:B78C  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  9956. F000:B78E  EC                    in    al,dx            ; port 0C5h
  9957. F000:B78F  8E C0                mov    es,ax
  9958. F000:B791  24 FE                and    al,0FEh
  9959. F000:B793  EB 00                jmp    short loc_837        ; (B795)
  9960. F000:B795            loc_837:                    ;  xref F000:B793
  9961. F000:B795  EB 00                jmp    short loc_838        ; (B797)
  9962. F000:B797            loc_838:                    ;  xref F000:B795
  9963. F000:B797  EE                    out    dx,al            ; port 0C5h
  9964. F000:B798  58                    pop    ax
  9965. F000:B799  5A                    pop    dx
  9966. F000:B79A  E8 039F                call    sub_155            ; (BB3C)
  9967. F000:B79D  52                    push    dx
  9968. F000:B79E  50                    push    ax
  9969. F000:B79F  BA 0461                mov    dx,461h
  9970. F000:B7A2  8C C0                mov    ax,es
  9971. F000:B7A4  EE                    out    dx,al            ; port 461h
  9972.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 170
  9973.  
  9974. F000:B7A5  8A C4                mov    al,ah
  9975. F000:B7A7  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  9976. F000:B7A9  58                    pop    ax
  9977. F000:B7AA  5A                    pop    dx
  9978. F000:B7AB  EB 03                jmp    short loc_840        ; (B7B0)
  9979. F000:B7AD            loc_839:                    ;  xref F000:B77B
  9980. F000:B7AD  E8 038C                call    sub_155            ; (BB3C)
  9981. F000:B7B0            loc_840:                    ;  xref F000:B7AB
  9982. F000:B7B0  73 03                jnc    short loc_841        ; Jump if carry=0
  9983. F000:B7B2  E9 FF50                jmp    loc_832            ; (B705)
  9984. F000:B7B5            loc_841:                    ;  xref F000:B7B0
  9985. F000:B7B5  BB 0042                mov    bx,42h
  9986. F000:B7B8  B9 0007                mov    cx,7
  9987. F000:B7BB  E8 03D8                call    sub_157            ; (BB96)
  9988. F000:B7BE  73 04                jnc    short loc_842        ; Jump if carry=0
  9989. F000:B7C0  B0 00                mov    al,0
  9990. F000:B7C2  EB 03                jmp    short loc_843        ; (B7C7)
  9991. F000:B7C4            loc_842:                    ;  xref F000:B7BE
  9992. F000:B7C4  E8 041C                call    sub_159            ; (BBE3)
  9993. F000:B7C7            loc_843:                    ;  xref F000:B712, B7C2
  9994. F000:B7C7  88 26 0041                mov    dsk_ret_code,ah        ; (0040:0041=0)
  9995. F000:B7CB  8B 56 0E                mov    dx,[bp+0Eh]
  9996. F000:B7CE  8B 5E 0C                mov    bx,[bp+0Ch]
  9997. F000:B7D1  8B 4E 10                mov    cx,[bp+10h]
  9998. F000:B7D4  E9 F8FD                jmp    loc_751            ; (B0D4)
  9999.   
  10000.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10001.                 ;                   SUBROUTINE
  10002.                 ;
  10003.                 ;         Called from:     F000:B060
  10004.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10005.   
  10006.                 sub_146        proc    near
  10007. F000:B7D7  53                    push    bx
  10008. F000:B7D8  51                    push    cx
  10009. F000:B7D9  8B 56 0E                mov    dx,[bp+0Eh]
  10010. F000:B7DC  BE 0090                mov    si,90h
  10011. F000:B7DF  32 F6                xor    dh,dh            ; Zero register
  10012. F000:B7E1  03 F2                add    si,dx
  10013. F000:B7E3  8A 34                mov    dh,[si]
  10014. F000:B7E5  80 E6 07                and    dh,7
  10015. F000:B7E8  75 0D                jnz    short loc_845        ; Jump if not zero
  10016. F000:B7EA  C6 04 02                mov    byte ptr [si],2
  10017. F000:B7ED  EB 08                jmp    short loc_845        ; (B7F7)
  10018. F000:B7EF            loc_844:                    ;  xref F000:B803, B80C
  10019. F000:B7EF  E8 0202                call    sub_149            ; (B9F4)
  10020. F000:B7F2  32 E4                xor    ah,ah            ; Zero register
  10021. F000:B7F4  E9 0147                jmp    loc_865            ; (B93E)
  10022. F000:B7F7            loc_845:                    ;  xref F000:B7E8, B7ED
  10023. F000:B7F7  E8 388A                call    sub_265            ; (F084)
  10024. F000:B7FA  75 28                jnz    short loc_849        ; Jump if not zero
  10025. F000:B7FC  3C 01                cmp    al,1
  10026. F000:B7FE  75 05                jne    short loc_846        ; Jump if not equal
  10027. F000:B800  C6 04 93                mov    byte ptr [si],93h
  10028. F000:B803  EB EA                jmp    short loc_844        ; (B7EF)
  10029. F000:B805            loc_846:                    ;  xref F000:B7FE
  10030. F000:B805  3C 03                cmp    al,3
  10031.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 171
  10032.  
  10033. F000:B807  75 05                jne    short loc_847        ; Jump if not equal
  10034. F000:B809  C6 04 97                mov    byte ptr [si],97h
  10035. F000:B80C  EB E1                jmp    short loc_844        ; (B7EF)
  10036. F000:B80E            loc_847:                    ;  xref F000:B807
  10037. F000:B80E  3C 02                cmp    al,2
  10038. F000:B810  74 12                je    short loc_849        ; Jump if equal
  10039. F000:B812  80 26 008B F3            and    byte ptr ds:data_53e,0F3h    ; (C000:008B=74h)
  10040. F000:B817  E8 FD86                call    sub_143            ; (B5A0)
  10041. F000:B81A  73 5E                jnc    short loc_853        ; Jump if carry=0
  10042. F000:B81C  E8 FD81                call    sub_143            ; (B5A0)
  10043. F000:B81F  73 59                jnc    short loc_853        ; Jump if carry=0
  10044. F000:B821            loc_848:                    ;  xref F000:B83E
  10045. F000:B821  E9 011E                jmp    loc_866            ; (B942)
  10046. F000:B824            loc_849:                    ;  xref F000:B7FA, B810
  10047. F000:B824  B6 01                mov    dh,1
  10048. F000:B826  E8 01F8                call    sub_150            ; (BA21)
  10049. F000:B829  80 26 008B 33            and    byte ptr ds:data_53e,33h    ; (C000:008B=74h) '3'
  10050. F000:B82E  80 0E 008B 44            or    byte ptr ds:data_53e,44h    ; (C000:008B=74h) 'D'
  10051. F000:B833  8B 56 0E                mov    dx,[bp+0Eh]
  10052. F000:B836  E8 FD67                call    sub_143            ; (B5A0)
  10053. F000:B839  73 05                jnc    short loc_850        ; Jump if carry=0
  10054. F000:B83B  E8 FD62                call    sub_143            ; (B5A0)
  10055. F000:B83E  72 E1                jc    loc_848            ; Jump if carry Set
  10056. F000:B840            loc_850:                    ;  xref F000:B839
  10057. F000:B840  B9 0005                mov    cx,5
  10058.   
  10059. F000:B843            locloop_851:                    ;  xref F000:B871
  10060. F000:B843  51                    push    cx
  10061. F000:B844  8A F2                mov    dh,dl
  10062. F000:B846  B2 4A                mov    dl,4Ah            ; 'J'
  10063. F000:B848  8B F2                mov    si,dx
  10064. F000:B84A  8A D6                mov    dl,dh
  10065. F000:B84C  B5 02                mov    ch,2
  10066. F000:B84E  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  10067. F000:B853  E8 02E6                call    sub_155            ; (BB3C)
  10068. F000:B856  72 6E                jc    short loc_857        ; Jump if carry Set
  10069. F000:B858  BB 0042                mov    bx,42h
  10070. F000:B85B  B9 0007                mov    cx,7
  10071. F000:B85E  E8 0335                call    sub_157            ; (BB96)
  10072. F000:B861  72 63                jc    short loc_857        ; Jump if carry Set
  10073. F000:B863  BB 0042                mov    bx,42h
  10074. F000:B866  F6 07 C0                test    byte ptr [bx],0C0h
  10075. F000:B869  75 05                jnz    short loc_852        ; Jump if not zero
  10076. F000:B86B  B4 74                mov    ah,74h            ; 't'
  10077. F000:B86D  E9 00B4                jmp    loc_864            ; (B924)
  10078. F000:B870            loc_852:                    ;  xref F000:B869
  10079. F000:B870  59                    pop    cx
  10080. F000:B871  E2 D0                loop    locloop_851        ; Loop if cx > 0
  10081.   
  10082. F000:B873  B4 80                mov    ah,80h
  10083. F000:B875  F6 07 08                test    byte ptr [bx],8
  10084. F000:B878  75 59                jnz    short loc_859        ; Jump if not zero
  10085. F000:B87A            loc_853:                    ;  xref F000:B81A, B81F
  10086. F000:B87A  32 F6                xor    dh,dh            ; Zero register
  10087. F000:B87C  E8 01A2                call    sub_150            ; (BA21)
  10088. F000:B87F  80 26 008B 3F            and    byte ptr ds:data_53e,3Fh    ; (C000:008B=74h) '?'
  10089. F000:B884  8B 56 0E                mov    dx,[bp+0Eh]
  10090.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 172
  10091.  
  10092. F000:B887  B9 0005                mov    cx,5
  10093.   
  10094. F000:B88A            locloop_854:                    ;  xref F000:B8CA
  10095. F000:B88A  51                    push    cx
  10096. F000:B88B  8A F2                mov    dh,dl
  10097. F000:B88D  B2 4A                mov    dl,4Ah            ; 'J'
  10098. F000:B88F  8B F2                mov    si,dx
  10099. F000:B891  8A D6                mov    dl,dh
  10100. F000:B893  B5 02                mov    ch,2
  10101. F000:B895  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  10102. F000:B89A  E8 029F                call    sub_155            ; (BB3C)
  10103. F000:B89D  72 27                jc    short loc_857        ; Jump if carry Set
  10104. F000:B89F  BB 0042                mov    bx,42h
  10105. F000:B8A2  B9 0007                mov    cx,7
  10106. F000:B8A5  E8 02EE                call    sub_157            ; (BB96)
  10107. F000:B8A8  72 1C                jc    short loc_857        ; Jump if carry Set
  10108. F000:B8AA  BB 0042                mov    bx,42h
  10109. F000:B8AD  F6 07 C0                test    byte ptr [bx],0C0h
  10110. F000:B8B0  75 17                jnz    short loc_858        ; Jump if not zero
  10111. F000:B8B2  50                    push    ax
  10112. F000:B8B3  E8 37CE                call    sub_265            ; (F084)
  10113. F000:B8B6  75 09                jnz    short loc_855        ; Jump if not zero
  10114. F000:B8B8  3C 04                cmp    al,4
  10115. F000:B8BA  58                    pop    ax
  10116. F000:B8BB  75 05                jnz    short loc_856        ; Jump if not zero
  10117. F000:B8BD  B4 17                mov    ah,17h
  10118. F000:B8BF  EB 63                jmp    short loc_864        ; (B924)
  10119. F000:B8C1            loc_855:                    ;  xref F000:B8B6
  10120. F000:B8C1  58                    pop    ax
  10121. F000:B8C2            loc_856:                    ;  xref F000:B8BB
  10122. F000:B8C2  B4 15                mov    ah,15h
  10123. F000:B8C4  EB 5E                jmp    short loc_864        ; (B924)
  10124. F000:B8C6            loc_857:                    ;  xref F000:B856, B861, B89D, B8A8
  10125.                                         ;            B8FE, B909
  10126. F000:B8C6  59                    pop    cx
  10127. F000:B8C7  EB 75                jmp    short loc_865        ; (B93E)
  10128. F000:B8C9            loc_858:                    ;  xref F000:B8B0
  10129. F000:B8C9  59                    pop    cx
  10130. F000:B8CA  E2 BE                loop    locloop_854        ; Loop if cx > 0
  10131.   
  10132. F000:B8CC  B4 80                mov    ah,80h
  10133. F000:B8CE  F6 07 08                test    byte ptr [bx],8
  10134. F000:B8D1  74 03                jz    short loc_860        ; Jump if zero
  10135. F000:B8D3            loc_859:                    ;  xref F000:B878
  10136. F000:B8D3  F9                    stc                ; Set carry flag
  10137. F000:B8D4  EB 68                jmp    short loc_865        ; (B93E)
  10138. F000:B8D6            loc_860:                    ;  xref F000:B8D1
  10139. F000:B8D6  B6 02                mov    dh,2
  10140. F000:B8D8  E8 0146                call    sub_150            ; (BA21)
  10141. F000:B8DB  80 26 008B 3F            and    byte ptr ds:data_53e,3Fh    ; (C000:008B=74h) '?'
  10142. F000:B8E0  80 0E 008B 80            or    byte ptr ds:data_53e,80h    ; (C000:008B=74h)
  10143. F000:B8E5  8B 56 0E                mov    dx,[bp+0Eh]
  10144. F000:B8E8  B9 0005                mov    cx,5
  10145.   
  10146. F000:B8EB            locloop_861:                    ;  xref F000:B914
  10147. F000:B8EB  51                    push    cx
  10148. F000:B8EC  8A F2                mov    dh,dl
  10149.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 173
  10150.  
  10151. F000:B8EE  B2 4A                mov    dl,4Ah            ; 'J'
  10152. F000:B8F0  8B F2                mov    si,dx
  10153. F000:B8F2  8A D6                mov    dl,dh
  10154. F000:B8F4  B5 02                mov    ch,2
  10155. F000:B8F6  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  10156. F000:B8FB  E8 023E                call    sub_155            ; (BB3C)
  10157. F000:B8FE  72 C6                jc    loc_857            ; Jump if carry Set
  10158. F000:B900  BB 0042                mov    bx,42h
  10159. F000:B903  B9 0007                mov    cx,7
  10160. F000:B906  E8 028D                call    sub_157            ; (BB96)
  10161. F000:B909  72 BB                jc    loc_857            ; Jump if carry Set
  10162. F000:B90B  BB 0042                mov    bx,42h
  10163. F000:B90E  F6 07 C0                test    byte ptr [bx],0C0h
  10164. F000:B911  74 0F                jz    short loc_863        ; Jump if zero
  10165. F000:B913  59                    pop    cx
  10166. F000:B914  E2 D5                loop    locloop_861        ; Loop if cx > 0
  10167.   
  10168. F000:B916  B4 80                mov    ah,80h
  10169. F000:B918  F6 07 08                test    byte ptr [bx],8
  10170. F000:B91B  75 02                jnz    short loc_862        ; Jump if not zero
  10171. F000:B91D  B4 02                mov    ah,2
  10172. F000:B91F            loc_862:                    ;  xref F000:B91B
  10173. F000:B91F  F9                    stc                ; Set carry flag
  10174. F000:B920  EB 1C                jmp    short loc_865        ; (B93E)
  10175. F000:B922            loc_863:                    ;  xref F000:B911
  10176. F000:B922  B4 97                mov    ah,97h
  10177. F000:B924            loc_864:                    ;  xref F000:B86D, B8BF, B8C4
  10178. F000:B924  59                    pop    cx
  10179. F000:B925  32 F6                xor    dh,dh            ; Zero register
  10180. F000:B927  BB 0090                mov    bx,90h
  10181. F000:B92A  03 DA                add    bx,dx
  10182. F000:B92C  88 27                mov    [bx],ah
  10183. F000:B92E  B0 04                mov    al,4
  10184. F000:B930  F6 E2                mul    dl            ; ax = reg * al
  10185. F000:B932  8A C8                mov    cl,al
  10186. F000:B934  B0 02                mov    al,2
  10187. F000:B936  D2 E0                shl    al,cl            ; Shift w/zeros fill
  10188. F000:B938  08 06 008F                or    ds:data_54e,al        ; (C000:008F=38h)
  10189. F000:B93C  32 E4                xor    ah,ah            ; Zero register
  10190. F000:B93E            loc_865:                    ;  xref F000:B7F4, B8C7, B8D4, B920
  10191. F000:B93E  88 26 0041                mov    ds:data_37e,ah        ; (C000:0041=0)
  10192. F000:B942            loc_866:                    ;  xref F000:B821
  10193. F000:B942  8B 56 0E                mov    dx,[bp+0Eh]
  10194. F000:B945  59                    pop    cx
  10195. F000:B946  5B                    pop    bx
  10196. F000:B947  C3                    retn
  10197.                 sub_146        endp
  10198.   
  10199.   
  10200.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10201.                 ;                   SUBROUTINE
  10202.                 ;
  10203.                 ;         Called from:     F000:AF60, AFCE, B044, B113, B424
  10204.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10205.   
  10206.                 sub_147        proc    near
  10207. F000:B948  52                    push    dx
  10208.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 174
  10209.  
  10210. F000:B949  51                    push    cx
  10211. F000:B94A  FA                    cli                ; Disable interrupts
  10212. F000:B94B  C6 06 0040 FF            mov    dsk_motor_tmr,0FFh    ; (0040:0040=0F8h)
  10213. F000:B950  80 26 003F CF            and    dsk_motor_stat,0CFh    ; (0040:003F=0)
  10214. F000:B955  8A EA                mov    ch,dl
  10215. F000:B957  C0 E2 04                shl    dl,4            ; Shift w/zeros fill
  10216. F000:B95A  08 16 003F                or    dsk_motor_stat,dl    ; (0040:003F=0)
  10217. F000:B95E  8A CD                mov    cl,ch
  10218. F000:B960  8A 16 003F                mov    dl,dsk_motor_stat    ; (0040:003F=0)
  10219. F000:B964  FE C1                inc    cl
  10220. F000:B966  D2 EA                shr    dl,cl            ; Shift w/zeros fill
  10221. F000:B968  72 4F                jc    short loc_869        ; Jump if carry Set
  10222. F000:B96A  B2 01                mov    dl,1
  10223. F000:B96C  FE C9                dec    cl
  10224. F000:B96E  D2 E2                shl    dl,cl            ; Shift w/zeros fill
  10225. F000:B970  08 16 003F                or    dsk_motor_stat,dl    ; (0040:003F=0)
  10226. F000:B974  FB                    sti                ; Enable interrupts
  10227. F000:B975  A0 003F                mov    al,dsk_motor_stat    ; (0040:003F=0)
  10228. F000:B978  C0 C8 04                ror    al,4            ; Rotate
  10229. F000:B97B  0C 0C                or    al,0Ch
  10230. F000:B97D  BA 03F2                mov    dx,3F2h
  10231. F000:B980  EE                    out    dx,al            ; port 3F2h, dsk0 contrl output
  10232. F000:B981  B8 90FD                mov    ax,90FDh
  10233. F000:B984  CD 15                int    15h            ; General services, ah=func 90h
  10234.                                         ;  device busy, al=type
  10235. F000:B986  72 3E                jc    short loc_870        ; Jump if carry Set
  10236. F000:B988  8A 26 003F                mov    ah,dsk_motor_stat    ; (0040:003F=0)
  10237. F000:B98C  1E                    push    ds
  10238. F000:B98D  56                    push    si
  10239. F000:B98E  33 F6                xor    si,si            ; Zero register
  10240. F000:B990  8E DE                mov    ds,si
  10241. F000:B992  C5 36 0078                lds    si,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  10242. F000:B996  8A 44 0A                mov    al,[si+0Ah]
  10243. F000:B999  5E                    pop    si
  10244. F000:B99A  1F                    pop    ds
  10245. F000:B99B  D0 E4                shl    ah,1            ; Shift w/zeros fill
  10246. F000:B99D  73 08                jnc    short loc_867        ; Jump if carry=0
  10247. F000:B99F  3C 08                cmp    al,8
  10248. F000:B9A1  73 0A                jae    short loc_868        ; Jump if above or =
  10249. F000:B9A3  B0 08                mov    al,8
  10250. F000:B9A5  EB 06                jmp    short loc_868        ; (B9AD)
  10251. F000:B9A7            loc_867:                    ;  xref F000:B99D
  10252. F000:B9A7  3C 05                cmp    al,5
  10253. F000:B9A9  73 02                jae    short loc_868        ; Jump if above or =
  10254. F000:B9AB  B0 05                mov    al,5
  10255. F000:B9AD            loc_868:                    ;  xref F000:B9A1, B9A5, B9A9, B9B5
  10256. F000:B9AD  B9 208E                mov    cx,208Eh
  10257. F000:B9B0  E8 36B5                call    sub_264            ; (F068)
  10258. F000:B9B3  FE C8                dec    al
  10259. F000:B9B5  75 F6                jnz    loc_868            ; Jump if not zero
  10260. F000:B9B7  EB 0D                jmp    short loc_870        ; (B9C6)
  10261. F000:B9B9            loc_869:                    ;  xref F000:B968
  10262. F000:B9B9  FB                    sti                ; Enable interrupts
  10263. F000:B9BA  A0 003F                mov    al,dsk_motor_stat    ; (0040:003F=0)
  10264. F000:B9BD  C0 C8 04                ror    al,4            ; Rotate
  10265. F000:B9C0  0C 0C                or    al,0Ch
  10266. F000:B9C2  BA 03F2                mov    dx,3F2h
  10267.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 175
  10268.  
  10269. F000:B9C5  EE                    out    dx,al            ; port 3F2h, dsk0 contrl output
  10270. F000:B9C6            loc_870:                    ;  xref F000:B986, B9B7
  10271. F000:B9C6  59                    pop    cx
  10272. F000:B9C7  5A                    pop    dx
  10273. F000:B9C8  C3                    retn
  10274.                 sub_147        endp
  10275.   
  10276.   
  10277.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10278.                 ;                   SUBROUTINE
  10279.                 ;
  10280.                 ;         Called from:     F000:B04D, B0D4, B11B, B197
  10281.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10282.   
  10283.                 sub_148        proc    near
  10284. F000:B9C9  50                    push    ax
  10285. F000:B9CA  1E                    push    ds
  10286. F000:B9CB  33 DB                xor    bx,bx            ; Zero register
  10287. F000:B9CD  8E DB                mov    ds,bx
  10288. F000:B9CF  C5 1E 0078                lds    bx,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  10289. F000:B9D3  8A 67 02                mov    ah,[bx+2]
  10290. F000:B9D6  8A 47 04                mov    al,[bx+4]
  10291. F000:B9D9  FE C0                inc    al
  10292. F000:B9DB  1F                    pop    ds
  10293. F000:B9DC  BB 0042                mov    bx,42h
  10294. F000:B9DF  3A 6F 03                cmp    ch,[bx+3]
  10295. F000:B9E2  75 08                jne    short loc_871        ; Jump if not equal
  10296. F000:B9E4  3A 77 04                cmp    dh,[bx+4]
  10297. F000:B9E7  75 03                jne    short loc_871        ; Jump if not equal
  10298. F000:B9E9  8A 47 05                mov    al,[bx+5]
  10299. F000:B9EC            loc_871:                    ;  xref F000:B9E2, B9E7
  10300. F000:B9EC  88 26 0040                mov    ds:data_36e,ah        ; (C000:0040=0)
  10301. F000:B9F0  8A D8                mov    bl,al
  10302. F000:B9F2  58                    pop    ax
  10303. F000:B9F3  C3                    retn
  10304.                 sub_148        endp
  10305.   
  10306.   
  10307.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10308.                 ;                   SUBROUTINE
  10309.                 ;
  10310.                 ;         Called from:     F000:B067, B120, B7EF
  10311.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10312.   
  10313.                 sub_149        proc    near
  10314. F000:B9F4  56                    push    si
  10315. F000:B9F5  BE 0090                mov    si,90h
  10316. F000:B9F8  32 F6                xor    dh,dh            ; Zero register
  10317. F000:B9FA  03 F2                add    si,dx
  10318. F000:B9FC  8A 34                mov    dh,[si]
  10319. F000:B9FE  8A 16 008B                mov    dl,ds:data_53e        ; (C000:008B=74h)
  10320. F000:BA02  81 E2 C0C0                and    dx,0C0C0h
  10321. F000:BA06  3A D6                cmp    dl,dh
  10322. F000:BA08  74 12                je    short loc_872        ; Jump if equal
  10323. F000:BA0A  80 26 008B 3F            and    byte ptr ds:data_53e,3Fh    ; (C000:008B=74h) '?'
  10324. F000:BA0F  08 36 008B                or    ds:data_53e,dh        ; (C000:008B=74h)
  10325. F000:BA13  80 E6 C0                and    dh,0C0h
  10326.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 176
  10327.  
  10328. F000:BA16  C0 C6 02                rol    dh,2            ; Rotate
  10329. F000:BA19  E8 0005                call    sub_150            ; (BA21)
  10330. F000:BA1C            loc_872:                    ;  xref F000:BA08
  10331. F000:BA1C  5E                    pop    si
  10332. F000:BA1D  8B 56 0E                mov    dx,[bp+0Eh]
  10333. F000:BA20  C3                    retn
  10334.                 sub_149        endp
  10335.   
  10336.   
  10337.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10338.                 ;                   SUBROUTINE
  10339.                 ;
  10340.                 ;         Called from:     F000:B39C, B3FC, B826, B87C, B8D8, BA19
  10341.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10342.   
  10343.                 sub_150        proc    near
  10344. F000:BA21  50                    push    ax
  10345. F000:BA22  8A C6                mov    al,dh
  10346. F000:BA24  BA 03F7                mov    dx,3F7h
  10347. F000:BA27  EE                    out    dx,al            ; port 3F7h, dsk0 config ctrl
  10348. F000:BA28  58                    pop    ax
  10349. F000:BA29  C3                    retn
  10350.                 sub_150        endp
  10351.   
  10352.   
  10353.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10354.                 ;                   SUBROUTINE
  10355.                 ;
  10356.                 ;         Called from:     F000:AF65, B047, B116
  10357.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10358.   
  10359.                 sub_151        proc    near
  10360. F000:BA2A  51                    push    cx
  10361. F000:BA2B  E8 3656                call    sub_265            ; (F084)
  10362. F000:BA2E  B4 00                mov    ah,0
  10363. F000:BA30  75 04                jnz    short loc_873        ; Jump if not zero
  10364. F000:BA32  FE C8                dec    al
  10365. F000:BA34  74 3C                jz    short loc_874        ; Jump if zero
  10366. F000:BA36            loc_873:                    ;  xref F000:BA30
  10367. F000:BA36  8A 04                mov    al,[si]
  10368. F000:BA38  24 07                and    al,7
  10369. F000:BA3A  74 36                jz    short loc_874        ; Jump if zero
  10370. F000:BA3C  3C 03                cmp    al,3
  10371. F000:BA3E  74 32                je    short loc_874        ; Jump if equal
  10372. F000:BA40  E8 0286                call    sub_162            ; (BCC9)
  10373. F000:BA43  73 32                jnc    short loc_875        ; Jump if carry=0
  10374. F000:BA45  BA 03F7                mov    dx,3F7h
  10375. F000:BA48  EC                    in    al,dx            ; port 3F7h, dsk0 status C
  10376. F000:BA49  D0 E0                shl    al,1            ; Shift w/zeros fill
  10377. F000:BA4B  73 2A                jnc    short loc_875        ; Jump if carry=0
  10378. F000:BA4D  80 24 EF                and    byte ptr [si],0EFh
  10379. F000:BA50  E8 F479                call    sub_135            ; (AECC)
  10380. F000:BA53  72 22                jc    short loc_875        ; Jump if carry Set
  10381. F000:BA55  8B 56 0E                mov    dx,[bp+0Eh]
  10382. F000:BA58  B5 01                mov    ch,1
  10383. F000:BA5A  E8 FBA6                call    sub_144            ; (B603)
  10384. F000:BA5D  72 18                jc    short loc_875        ; Jump if carry Set
  10385.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 177
  10386.  
  10387. F000:BA5F  B5 00                mov    ch,0
  10388. F000:BA61  E8 FB9F                call    sub_144            ; (B603)
  10389. F000:BA64  72 11                jc    short loc_875        ; Jump if carry Set
  10390. F000:BA66  B4 06                mov    ah,6
  10391. F000:BA68  BA 03F7                mov    dx,3F7h
  10392. F000:BA6B  EC                    in    al,dx            ; port 3F7h, dsk0 status C
  10393. F000:BA6C  D0 E0                shl    al,1            ; Shift w/zeros fill
  10394. F000:BA6E  73 02                jnc    short loc_874        ; Jump if carry=0
  10395. F000:BA70  B4 80                mov    ah,80h
  10396. F000:BA72            loc_874:                    ;  xref F000:BA34, BA3A, BA3E, BA6E
  10397. F000:BA72  0A E4                or    ah,ah            ; Zero ?
  10398. F000:BA74  74 01                jz    short loc_875        ; Jump if zero
  10399. F000:BA76  F9                    stc                ; Set carry flag
  10400. F000:BA77            loc_875:                    ;  xref F000:BA43, BA4B, BA53, BA5D
  10401.                                         ;            BA64, BA74
  10402. F000:BA77  8B 56 0E                mov    dx,[bp+0Eh]
  10403. F000:BA7A  59                    pop    cx
  10404. F000:BA7B  C3                    retn
  10405.                 sub_151        endp
  10406.   
  10407.   
  10408.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10409.                 ;                   SUBROUTINE
  10410.                 ;
  10411.                 ;         Called from:     F000:B0C8, B143
  10412.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10413.   
  10414.                 sub_152        proc    near
  10415. F000:BA7C  50                    push    ax
  10416. F000:BA7D  52                    push    dx
  10417. F000:BA7E  FA                    cli                ; Disable interrupts
  10418. F000:BA7F  8A C4                mov    al,ah
  10419. F000:BA81  E6 0C                out    0Ch,al            ; port 0Ch, DMA-1 clr byte ptr
  10420. F000:BA83  EB 00                jmp    short loc_876        ; (BA85)
  10421. F000:BA85            loc_876:                    ;  xref F000:BA83
  10422. F000:BA85  EB 00                jmp    short loc_877        ; (BA87)
  10423. F000:BA87            loc_877:                    ;  xref F000:BA85
  10424. F000:BA87  E6 0B                out    0Bh,al            ; port 0Bh, DMA-1 mode reg
  10425. F000:BA89  EB 00                jmp    short loc_878        ; (BA8B)
  10426. F000:BA8B            loc_878:                    ;  xref F000:BA89
  10427. F000:BA8B  EB 00                jmp    short loc_879        ; (BA8D)
  10428. F000:BA8D            loc_879:                    ;  xref F000:BA8B
  10429. F000:BA8D  8A C1                mov    al,cl
  10430. F000:BA8F  E6 05                out    5,al            ; port 5, DMA-1 bas&cnt ch 2
  10431. F000:BA91  EB 00                jmp    short loc_880        ; (BA93)
  10432. F000:BA93            loc_880:                    ;  xref F000:BA91
  10433. F000:BA93  EB 00                jmp    short loc_881        ; (BA95)
  10434. F000:BA95            loc_881:                    ;  xref F000:BA93
  10435. F000:BA95  8A C5                mov    al,ch
  10436. F000:BA97  E6 05                out    5,al            ; port 5, DMA-1 bas&cnt ch 2
  10437. F000:BA99  EB 00                jmp    short loc_882        ; (BA9B)
  10438. F000:BA9B            loc_882:                    ;  xref F000:BA99
  10439. F000:BA9B  EB 00                jmp    short loc_883        ; (BA9D)
  10440. F000:BA9D            loc_883:                    ;  xref F000:BA9B
  10441. F000:BA9D  8A C3                mov    al,bl
  10442. F000:BA9F  E6 04                out    4,al            ; port 4, DMA-1 bas&add ch 2
  10443. F000:BAA1  EB 00                jmp    short loc_884        ; (BAA3)
  10444.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 178
  10445.  
  10446. F000:BAA3            loc_884:                    ;  xref F000:BAA1
  10447. F000:BAA3  EB 00                jmp    short loc_885        ; (BAA5)
  10448. F000:BAA5            loc_885:                    ;  xref F000:BAA3
  10449. F000:BAA5  8A C7                mov    al,bh
  10450. F000:BAA7  E6 04                out    4,al            ; port 4, DMA-1 bas&add ch 2
  10451. F000:BAA9  EB 00                jmp    short loc_886        ; (BAAB)
  10452. F000:BAAB            loc_886:                    ;  xref F000:BAA9
  10453. F000:BAAB  EB 00                jmp    short loc_887        ; (BAAD)
  10454. F000:BAAD            loc_887:                    ;  xref F000:BAAB
  10455. F000:BAAD  8C C0                mov    ax,es
  10456. F000:BAAF  E6 81                out    81h,al            ; port 81h, DMA page reg ch 2
  10457. F000:BAB1  EB 00                jmp    short loc_888        ; (BAB3)
  10458. F000:BAB3            loc_888:                    ;  xref F000:BAB1
  10459. F000:BAB3  EB 00                jmp    short loc_889        ; (BAB5)
  10460. F000:BAB5            loc_889:                    ;  xref F000:BAB3
  10461. F000:BAB5  B0 02                mov    al,2
  10462. F000:BAB7  E6 0A                out    0Ah,al            ; port 0Ah, DMA-1 mask reg bit
  10463. F000:BAB9  FB                    sti                ; Enable interrupts
  10464. F000:BABA  5A                    pop    dx
  10465. F000:BABB  58                    pop    ax
  10466. F000:BABC  C3                    retn
  10467.                 sub_152        endp
  10468.   
  10469.   
  10470.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10471.                 ;                   SUBROUTINE
  10472.                 ;
  10473.                 ;         Called from:     F000:B0A9, B13C
  10474.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10475.   
  10476.                 sub_153        proc    near
  10477. F000:BABD  51                    push    cx
  10478. F000:BABE  33 C0                xor    ax,ax            ; Zero register
  10479. F000:BAC0  8C C1                mov    cx,es
  10480. F000:BAC2  D1 E1                shl    cx,1            ; Shift w/zeros fill
  10481. F000:BAC4  D0 D0                rcl    al,1            ; Rotate thru carry
  10482. F000:BAC6  D1 E1                shl    cx,1            ; Shift w/zeros fill
  10483. F000:BAC8  D0 D0                rcl    al,1            ; Rotate thru carry
  10484. F000:BACA  D1 E1                shl    cx,1            ; Shift w/zeros fill
  10485. F000:BACC  D0 D0                rcl    al,1            ; Rotate thru carry
  10486. F000:BACE  D1 E1                shl    cx,1            ; Shift w/zeros fill
  10487. F000:BAD0  D0 D0                rcl    al,1            ; Rotate thru carry
  10488. F000:BAD2  8B 5E 0C                mov    bx,[bp+0Ch]
  10489. F000:BAD5  03 D9                add    bx,cx
  10490. F000:BAD7  15 0000                adc    ax,0
  10491. F000:BADA  8E C0                mov    es,ax
  10492. F000:BADC  59                    pop    cx
  10493. F000:BADD  8B C1                mov    ax,cx
  10494. F000:BADF  03 C3                add    ax,bx
  10495. F000:BAE1  73 02                jnc    short loc_ret_890    ; Jump if carry=0
  10496. F000:BAE3  B4 09                mov    ah,9
  10497.   
  10498. F000:BAE5            loc_ret_890:                    ;  xref F000:BAE1
  10499. F000:BAE5  C3                    retn
  10500.                 sub_153        endp
  10501.   
  10502.   
  10503.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 179
  10504.  
  10505.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10506.                 ;                   SUBROUTINE
  10507.                 ;
  10508.                 ;         Called from:     F000:BB48, BB4C
  10509.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10510.   
  10511.                 sub_154        proc    near
  10512. F000:BAE6  8B C6                mov    ax,si
  10513. F000:BAE8  8A E0                mov    ah,al
  10514. F000:BAEA  E8 007C                call    sub_156            ; (BB69)
  10515. F000:BAED  FE CD                dec    ch
  10516. F000:BAEF  76 4A                jbe    short loc_ret_891    ; Jump if below or =
  10517. F000:BAF1  8B C6                mov    ax,si
  10518. F000:BAF3  E8 0073                call    sub_156            ; (BB69)
  10519. F000:BAF6  FE CD                dec    ch
  10520. F000:BAF8  76 41                jbe    short loc_ret_891    ; Jump if below or =
  10521. F000:BAFA  8B C7                mov    ax,di
  10522. F000:BAFC  8A E0                mov    ah,al
  10523. F000:BAFE  E8 0068                call    sub_156            ; (BB69)
  10524. F000:BB01  FE CD                dec    ch
  10525. F000:BB03  76 36                jbe    short loc_ret_891    ; Jump if below or =
  10526. F000:BB05  8B C7                mov    ax,di
  10527. F000:BB07  E8 005F                call    sub_156            ; (BB69)
  10528. F000:BB0A  FE CD                dec    ch
  10529. F000:BB0C  76 2D                jbe    short loc_ret_891    ; Jump if below or =
  10530. F000:BB0E  8B 46 00                mov    ax,[bp]
  10531. F000:BB11  8A E0                mov    ah,al
  10532. F000:BB13  E8 0053                call    sub_156            ; (BB69)
  10533. F000:BB16  FE CD                dec    ch
  10534. F000:BB18  76 21                jbe    short loc_ret_891    ; Jump if below or =
  10535. F000:BB1A  8B 46 00                mov    ax,[bp]
  10536. F000:BB1D  E8 0049                call    sub_156            ; (BB69)
  10537. F000:BB20  FE CD                dec    ch
  10538. F000:BB22  76 17                jbe    short loc_ret_891    ; Jump if below or =
  10539. F000:BB24  8A E3                mov    ah,bl
  10540. F000:BB26  E8 0040                call    sub_156            ; (BB69)
  10541. F000:BB29  FE CD                dec    ch
  10542. F000:BB2B  76 0E                jbe    short loc_ret_891    ; Jump if below or =
  10543. F000:BB2D  8A E7                mov    ah,bh
  10544. F000:BB2F  E8 0037                call    sub_156            ; (BB69)
  10545. F000:BB32  FE CD                dec    ch
  10546. F000:BB34  76 05                jbe    short loc_ret_891    ; Jump if below or =
  10547. F000:BB36  8A E1                mov    ah,cl
  10548. F000:BB38  E8 002E                call    sub_156            ; (BB69)
  10549.   
  10550. F000:BB3B            loc_ret_891:                    ;  xref F000:BAEF, BAF8, BB03, BB0C
  10551.                                         ;            BB18, BB22, BB2B, BB34
  10552. F000:BB3B  C3                    retn
  10553.                 sub_154        endp
  10554.   
  10555.   
  10556.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10557.                 ;                   SUBROUTINE
  10558.                 ;
  10559.                 ;         Called from:     F000:B089, B180, B5AF, B5BE, B66B, B67D, B79A
  10560.                 ;                  B7AD, B853, B89A, B8FB, BCC3
  10561.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10562.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 180
  10563.  
  10564.   
  10565.                 sub_155        proc    near
  10566. F000:BB3C  F6 06 003E 80            test    byte ptr ds:data_34e,80h    ; (C000:003E=39h)
  10567. F000:BB41  74 09                jz    short loc_892        ; Jump if zero
  10568. F000:BB43  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  10569. F000:BB48  E8 FF9B                call    sub_154            ; (BAE6)
  10570. F000:BB4B  C3                    retn
  10571. F000:BB4C            loc_892:                    ;  xref F000:BB41
  10572. F000:BB4C  E8 FF97                call    sub_154            ; (BAE6)
  10573. F000:BB4F  72 0F                jc    short loc_ret_894    ; Jump if carry Set
  10574. F000:BB51  B8 9001                mov    ax,9001h
  10575. F000:BB54  CD 15                int    15h            ; General services, ah=func 90h
  10576.                                         ;  device busy, al=type
  10577. F000:BB56  FB                    sti                ; Enable interrupts
  10578. F000:BB57  72 05                jc    short loc_893        ; Jump if carry Set
  10579. F000:BB59  E8 017A                call    sub_163            ; (BCD6)
  10580. F000:BB5C  73 03                jnc    short loc_895        ; Jump if carry=0
  10581. F000:BB5E            loc_893:                    ;  xref F000:BB57
  10582. F000:BB5E  B4 80                mov    ah,80h
  10583.   
  10584. F000:BB60            loc_ret_894:                    ;  xref F000:BB4F
  10585. F000:BB60  C3                    retn
  10586. F000:BB61            loc_895:                    ;  xref F000:BB5C
  10587. F000:BB61  80 26 003E 7F            and    byte ptr ds:data_34e,7Fh    ; (C000:003E=39h)
  10588. F000:BB66  32 E4                xor    ah,ah            ; Zero register
  10589. F000:BB68  C3                    retn
  10590.                 sub_155        endp
  10591.   
  10592.   
  10593.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10594.                 ;                   SUBROUTINE
  10595.                 ;
  10596.                 ;         Called from:     F000:B48F, B496, B49F, B4B2, B4D2, B4D9, BAEA
  10597.                 ;                  BAF3, BAFE, BB07, BB13, BB1D, BB26, BB2F
  10598.                 ;                  BB38, BC4A
  10599.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10600.   
  10601.                 sub_156        proc    near
  10602. F000:BB69  51                    push    cx
  10603. F000:BB6A  52                    push    dx
  10604. F000:BB6B  B9 0002                mov    cx,2
  10605. F000:BB6E  E8 34F7                call    sub_264            ; (F068)
  10606. F000:BB71  BA 03F4                mov    dx,3F4h
  10607. F000:BB74  50                    push    ax
  10608. F000:BB75  B4 40                mov    ah,40h            ; '@'
  10609. F000:BB77  33 C9                xor    cx,cx            ; Zero register
  10610. F000:BB79  E8 33DE                call    sub_260            ; (EF5A)
  10611. F000:BB7C  72 12                jc    short loc_896        ; Jump if carry Set
  10612. F000:BB7E  B4 80                mov    ah,80h
  10613. F000:BB80  33 C9                xor    cx,cx            ; Zero register
  10614. F000:BB82  E8 33F9                call    sub_261            ; (EF7E)
  10615. F000:BB85  72 09                jc    short loc_896        ; Jump if carry Set
  10616. F000:BB87  58                    pop    ax
  10617. F000:BB88  BA 03F5                mov    dx,3F5h
  10618. F000:BB8B  8A C4                mov    al,ah
  10619. F000:BB8D  EE                    out    dx,al            ; port 3F5h, dsk0 controlr data
  10620.                                         ;  al = 0Fh, Seek
  10621.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 181
  10622.  
  10623. F000:BB8E  EB 03                jmp    short loc_897        ; (BB93)
  10624. F000:BB90            loc_896:                    ;  xref F000:BB7C, BB85
  10625. F000:BB90  58                    pop    ax
  10626. F000:BB91  B4 80                mov    ah,80h
  10627. F000:BB93            loc_897:                    ;  xref F000:BB8E
  10628. F000:BB93  5A                    pop    dx
  10629. F000:BB94  59                    pop    cx
  10630. F000:BB95  C3                    retn
  10631.                 sub_156        endp
  10632.   
  10633.   
  10634.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10635.                 ;                   SUBROUTINE
  10636.                 ;
  10637.                 ;         Called from:     F000:B155, B18B, B5C9, B688, B70E, B7BB, B85E
  10638.                 ;                  B8A5, B906
  10639.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10640.   
  10641.                 sub_157        proc    near
  10642. F000:BB96  52                    push    dx
  10643.   
  10644. F000:BB97            locloop_898:                    ;  xref F000:BBA1
  10645. F000:BB97  51                    push    cx
  10646. F000:BB98  E8 001F                call    sub_158            ; (BBBA)
  10647. F000:BB9B  59                    pop    cx
  10648. F000:BB9C  72 1A                jc    short loc_900        ; Jump if carry Set
  10649. F000:BB9E  88 07                mov    [bx],al
  10650. F000:BBA0  43                    inc    bx
  10651. F000:BBA1  E2 F4                loop    locloop_898        ; Loop if cx > 0
  10652.   
  10653. F000:BBA3  B9 0002                mov    cx,2
  10654. F000:BBA6  E8 34BF                call    sub_264            ; (F068)
  10655. F000:BBA9  BA 03F4                mov    dx,3F4h
  10656. F000:BBAC  EC                    in    al,dx            ; port 3F4h, dsk0 cntrlr status
  10657. F000:BBAD  A8 10                test    al,10h
  10658. F000:BBAF  74 05                jz    short loc_899        ; Jump if zero
  10659. F000:BBB1  B4 20                mov    ah,20h            ; ' '
  10660. F000:BBB3  F9                    stc                ; Set carry flag
  10661. F000:BBB4  EB 02                jmp    short loc_900        ; (BBB8)
  10662. F000:BBB6            loc_899:                    ;  xref F000:BBAF
  10663. F000:BBB6  32 E4                xor    ah,ah            ; Zero register
  10664. F000:BBB8            loc_900:                    ;  xref F000:BB9C, BBB4
  10665. F000:BBB8  5A                    pop    dx
  10666. F000:BBB9  C3                    retn
  10667.                 sub_157        endp
  10668.   
  10669.   
  10670.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10671.                 ;                   SUBROUTINE
  10672.                 ;
  10673.                 ;         Called from:     F000:B4B7, B4BE, B4DE, BB98, BC4F, BC58
  10674.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10675.   
  10676.                 sub_158        proc    near
  10677. F000:BBBA  52                    push    dx
  10678. F000:BBBB  B9 0002                mov    cx,2
  10679. F000:BBBE  E8 34A7                call    sub_264            ; (F068)
  10680.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 182
  10681.  
  10682. F000:BBC1  BA 03F4                mov    dx,3F4h
  10683. F000:BBC4  B4 80                mov    ah,80h
  10684. F000:BBC6  33 C9                xor    cx,cx            ; Zero register
  10685. F000:BBC8  E8 33B3                call    sub_261            ; (EF7E)
  10686. F000:BBCB  B4 80                mov    ah,80h
  10687. F000:BBCD  72 12                jc    short loc_904        ; Jump if carry Set
  10688. F000:BBCF  EC                    in    al,dx            ; port 3F4h, dsk0 cntrlr status
  10689. F000:BBD0  A8 40                test    al,40h            ; '@'
  10690. F000:BBD2  75 05                jnz    short loc_901        ; Jump if not zero
  10691. F000:BBD4  B4 20                mov    ah,20h            ; ' '
  10692. F000:BBD6  F9                    stc                ; Set carry flag
  10693. F000:BBD7  EB 08                jmp    short loc_904        ; (BBE1)
  10694. F000:BBD9            loc_901:                    ;  xref F000:BBD2
  10695. F000:BBD9  EB 00                jmp    short loc_902        ; (BBDB)
  10696. F000:BBDB            loc_902:                    ;  xref F000:BBD9
  10697. F000:BBDB  EB 00                jmp    short loc_903        ; (BBDD)
  10698. F000:BBDD            loc_903:                    ;  xref F000:BBDB
  10699. F000:BBDD  BA 03F5                mov    dx,3F5h
  10700. F000:BBE0  EC                    in    al,dx            ; port 3F5h, dsk0 controlr data
  10701. F000:BBE1            loc_904:                    ;  xref F000:BBCD, BBD7
  10702. F000:BBE1  5A                    pop    dx
  10703. F000:BBE2  C3                    retn
  10704.                 sub_158        endp
  10705.   
  10706.   
  10707.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10708.                 ;                   SUBROUTINE
  10709.                 ;
  10710.                 ;         Called from:     F000:B190, B7C4
  10711.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10712.   
  10713.                 sub_159        proc    near
  10714. F000:BBE3  BB 0042                mov    bx,42h
  10715. F000:BBE6  8B 1F                mov    bx,[bx]
  10716. F000:BBE8  F6 C3 C0                test    bl,0C0h
  10717. F000:BBEB  B4 00                mov    ah,0
  10718. F000:BBED  74 33                jz    short loc_ret_905    ; Jump if zero
  10719. F000:BBEF  F6 C3 40                test    bl,40h            ; '@'
  10720. F000:BBF2  B4 20                mov    ah,20h            ; ' '
  10721. F000:BBF4  74 2C                jz    short loc_ret_905    ; Jump if zero
  10722. F000:BBF6  F6 C7 01                test    bh,1
  10723. F000:BBF9  B4 02                mov    ah,2
  10724. F000:BBFB  75 25                jnz    short loc_ret_905    ; Jump if not zero
  10725. F000:BBFD  F6 C7 02                test    bh,2
  10726. F000:BC00  B4 03                mov    ah,3
  10727. F000:BC02  75 1E                jnz    short loc_ret_905    ; Jump if not zero
  10728. F000:BC04  F6 C7 04                test    bh,4
  10729. F000:BC07  B4 04                mov    ah,4
  10730. F000:BC09  75 17                jnz    short loc_ret_905    ; Jump if not zero
  10731. F000:BC0B  F6 C7 10                test    bh,10h
  10732. F000:BC0E  B4 08                mov    ah,8
  10733. F000:BC10  75 10                jnz    short loc_ret_905    ; Jump if not zero
  10734. F000:BC12  F6 C7 20                test    bh,20h            ; ' '
  10735. F000:BC15  B4 10                mov    ah,10h
  10736. F000:BC17  75 09                jnz    short loc_ret_905    ; Jump if not zero
  10737. F000:BC19  F6 C7 80                test    bh,80h
  10738. F000:BC1C  B4 04                mov    ah,4
  10739.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 183
  10740.  
  10741. F000:BC1E  75 02                jnz    short loc_ret_905    ; Jump if not zero
  10742. F000:BC20  B4 20                mov    ah,20h            ; ' '
  10743.   
  10744. F000:BC22            loc_ret_905:                    ;  xref F000:BBED, BBF4, BBFB, BC02
  10745.                                         ;            BC09, BC10, BC17, BC1E
  10746. F000:BC22  C3                    retn
  10747.                 sub_159        endp
  10748.   
  10749. F000:BC23            loc_906:                    ;  xref F000:AED1
  10750. F000:BC23  E8 0048                call    sub_160            ; (BC6E)
  10751. F000:BC26  72 43                jc    short loc_910        ; Jump if carry Set
  10752. F000:BC28  BA 03F4                mov    dx,3F4h
  10753. F000:BC2B  EC                    in    al,dx            ; port 3F4h, dsk0 cntrlr status
  10754. F000:BC2C  A8 80                test    al,80h
  10755. F000:BC2E  74 04                jz    short loc_907        ; Jump if zero
  10756. F000:BC30  A8 40                test    al,40h            ; '@'
  10757. F000:BC32  74 14                jz    short loc_909        ; Jump if zero
  10758. F000:BC34            loc_907:                    ;  xref F000:BC2E
  10759. F000:BC34  E8 0037                call    sub_160            ; (BC6E)
  10760. F000:BC37  BA 03F4                mov    dx,3F4h
  10761. F000:BC3A  EC                    in    al,dx            ; port 3F4h, dsk0 cntrlr status
  10762. F000:BC3B  A8 80                test    al,80h
  10763. F000:BC3D  74 04                jz    short loc_908        ; Jump if zero
  10764. F000:BC3F  A8 40                test    al,40h            ; '@'
  10765. F000:BC41  74 05                jz    short loc_909        ; Jump if zero
  10766. F000:BC43            loc_908:                    ;  xref F000:BC3D, BC67
  10767. F000:BC43  B4 20                mov    ah,20h            ; ' '
  10768. F000:BC45  F9                    stc                ; Set carry flag
  10769. F000:BC46  EB 23                jmp    short loc_910        ; (BC6B)
  10770. F000:BC48            loc_909:                    ;  xref F000:BC32, BC41
  10771. F000:BC48  B4 08                mov    ah,8
  10772. F000:BC4A  E8 FF1C                call    sub_156            ; (BB69)
  10773. F000:BC4D  72 1C                jc    short loc_910        ; Jump if carry Set
  10774. F000:BC4F  E8 FF68                call    sub_158            ; (BBBA)
  10775. F000:BC52  72 17                jc    short loc_910        ; Jump if carry Set
  10776. F000:BC54  A2 0042                mov    dsk_status_1,al        ; (0040:0042=0C0h)
  10777. F000:BC57  50                    push    ax
  10778. F000:BC58  E8 FF5F                call    sub_158            ; (BBBA)
  10779. F000:BC5B  A2 0043                mov    dsk_status_2,al        ; (0040:0043=0)
  10780. F000:BC5E  59                    pop    cx
  10781. F000:BC5F  72 0A                jc    short loc_910        ; Jump if carry Set
  10782. F000:BC61  80 E1 C0                and    cl,0C0h
  10783. F000:BC64  80 F9 C0                cmp    cl,0C0h
  10784. F000:BC67  75 DA                jne    loc_908            ; Jump if not equal
  10785. F000:BC69  32 E4                xor    ah,ah            ; Zero register
  10786. F000:BC6B            loc_910:                    ;  xref F000:BC26, BC46, BC4D, BC52
  10787.                                         ;            BC5F
  10788. F000:BC6B  E9 F266                jmp    loc_707            ; (AED4)
  10789.   
  10790.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10791.                 ;                   SUBROUTINE
  10792.                 ;
  10793.                 ;         Called from:     F000:BC23, BC34
  10794.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10795.   
  10796.                 sub_160        proc    near
  10797. F000:BC6E  FA                    cli                ; Disable interrupts
  10798.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 184
  10799.  
  10800. F000:BC6F  80 26 003F 7F            and    dsk_motor_stat,7Fh    ; (0040:003F=0)
  10801. F000:BC74  80 26 003E 7F            and    dsk_recal_stat,7Fh    ; (0040:003E=0)
  10802. F000:BC79  A0 003F                mov    al,dsk_motor_stat    ; (0040:003F=0)
  10803. F000:BC7C  C0 C0 04                rol    al,4            ; Rotate
  10804. F000:BC7F  24 FB                and    al,0FBh
  10805. F000:BC81  0C 08                or    al,8
  10806. F000:BC83  BA 03F2                mov    dx,3F2h
  10807. F000:BC86  EE                    out    dx,al            ; port 3F2h, dsk0 contrl output
  10808. F000:BC87  B9 0001                mov    cx,1
  10809. F000:BC8A  E8 33DB                call    sub_264            ; (F068)
  10810. F000:BC8D  0C 0C                or    al,0Ch
  10811. F000:BC8F  EE                    out    dx,al            ; port 3F2h, dsk0 contrl output
  10812. F000:BC90  B8 9001                mov    ax,9001h
  10813. F000:BC93  CD 15                int    15h            ; General services, ah=func 90h
  10814.                                         ;  device busy, al=type
  10815. F000:BC95  FB                    sti                ; Enable interrupts
  10816. F000:BC96  72 03                jc    short loc_911        ; Jump if carry Set
  10817. F000:BC98  E8 003B                call    sub_163            ; (BCD6)
  10818. F000:BC9B            loc_911:                    ;  xref F000:BC96
  10819. F000:BC9B  B4 80                mov    ah,80h
  10820. F000:BC9D  72 07                jc    short loc_ret_912    ; Jump if carry Set
  10821. F000:BC9F  80 26 003E 7F            and    dsk_recal_stat,7Fh    ; (0040:003E=0)
  10822. F000:BCA4  32 E4                xor    ah,ah            ; Zero register
  10823.   
  10824. F000:BCA6            loc_ret_912:                    ;  xref F000:BC9D
  10825. F000:BCA6  C3                    retn
  10826.                 sub_160        endp
  10827.   
  10828.   
  10829.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10830.                 ;                   SUBROUTINE
  10831.                 ;
  10832.                 ;         Called from:     F000:B123
  10833.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10834.   
  10835.                 sub_161        proc    near
  10836. F000:BCA7            loc_913:                    ;  xref F000:AED6
  10837. F000:BCA7  1E                    push    ds
  10838. F000:BCA8  33 DB                xor    bx,bx            ; Zero register
  10839. F000:BCAA  8E DB                mov    ds,bx
  10840. F000:BCAC  C5 1E 0078                lds    bx,dword ptr ds:disk_parm_off    ; (0000:0078=522h) Load 32 bit ptr
  10841. F000:BCB0  B0 03                mov    al,3
  10842. F000:BCB2  8A 27                mov    ah,[bx]
  10843. F000:BCB4  8B F0                mov    si,ax
  10844. F000:BCB6  8A 47 01                mov    al,[bx+1]
  10845. F000:BCB9  8B F8                mov    di,ax
  10846. F000:BCBB  B5 03                mov    ch,3
  10847. F000:BCBD  1F                    pop    ds
  10848. F000:BCBE  80 0E 003E 80            or    byte ptr ds:data_34e,80h    ; (C000:003E=39h)
  10849. F000:BCC3  E8 FE76                call    sub_155            ; (BB3C)
  10850. F000:BCC6  E9 F210                jmp    loc_708            ; (AED9)
  10851.                 sub_161        endp
  10852.   
  10853.   
  10854.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10855.                 ;                   SUBROUTINE
  10856.                 ;
  10857.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 185
  10858.  
  10859.                 ;         Called from:     F000:AF17, AF5A, AFC9, BA40
  10860.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10861.   
  10862.                 sub_162        proc    near
  10863. F000:BCC9  F9                    stc                ; Set carry flag
  10864. F000:BCCA  C3                    retn
  10865.                 sub_162        endp
  10866.   
  10867. F000:BCCB  E8 B6 33 75 04 3C            db    0E8h, 0B6h, 33h, 75h, 4, 3Ch
  10868. F000:BCD1  03 74 01 F9 C3            db    3, 74h, 1, 0F9h, 0C3h
  10869.   
  10870.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10871.                 ;                   SUBROUTINE
  10872.                 ;
  10873.                 ;         Called from:     F000:B4AB, BB59, BC98
  10874.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10875.   
  10876.                 sub_163        proc    near
  10877. F000:BCD6  BB 003E                mov    bx,3Eh
  10878. F000:BCD9  33 C9                xor    cx,cx            ; Zero register
  10879. F000:BCDB  E8 32C4                call    sub_262            ; (EFA2)
  10880. F000:BCDE  73 05                jnc    short loc_ret_914    ; Jump if carry=0
  10881. F000:BCE0  33 C9                xor    cx,cx            ; Zero register
  10882. F000:BCE2  E8 32BD                call    sub_262            ; (EFA2)
  10883.   
  10884. F000:BCE5            loc_ret_914:                    ;  xref F000:BCDE
  10885. F000:BCE5  C3                    retn
  10886.                 sub_163        endp
  10887.   
  10888.   
  10889.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  10890.                 ;                   SUBROUTINE
  10891.                 ;
  10892.                 ;         Called from:     F000:97CF
  10893.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  10894.   
  10895.                 sub_164        proc    near
  10896. F000:BCE6  E8 D11E                call    sub_31            ; (8E07)
  10897. F000:BCE9  FA                    cli                ; Disable interrupts
  10898. F000:BCEA  55                    push    bp
  10899. F000:BCEB  B9 004A                mov    cx,4Ah
  10900. F000:BCEE  2B E1                sub    sp,cx
  10901. F000:BCF0  8B EC                mov    bp,sp
  10902. F000:BCF2  BC FD00                mov    sp,0FD00h
  10903. F000:BCF5  55                    push    bp
  10904.   
  10905. F000:BCF6            locloop_915:                    ;  xref F000:BCFB
  10906. F000:BCF6  C6 46 00 00                mov    byte ptr [bp],0
  10907. F000:BCFA  45                    inc    bp
  10908. F000:BCFB  E2 F9                loop    locloop_915        ; Loop if cx > 0
  10909.   
  10910. F000:BCFD  5D                    pop    bp
  10911. F000:BCFE  B0 8E                mov    al,8Eh
  10912. F000:BD00  E8 319C                call    sub_257            ; (EE9F)
  10913. F000:BD03  A8 C0                test    al,0C0h
  10914. F000:BD05  75 16                jnz    short loc_917        ; Jump if not zero
  10915. F000:BD07  33 FF                xor    di,di            ; Zero register
  10916.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 186
  10917.  
  10918. F000:BD09  B4 90                mov    ah,90h
  10919. F000:BD0B            loc_916:                    ;  xref F000:BD19
  10920. F000:BD0B  8A C4                mov    al,ah
  10921. F000:BD0D  E8 318F                call    sub_257            ; (EE9F)
  10922. F000:BD10  88 43 10                mov    [bp+di+10h],al
  10923. F000:BD13  47                    inc    di
  10924. F000:BD14  FE C4                inc    ah
  10925. F000:BD16  80 FC C0                cmp    ah,0C0h
  10926. F000:BD19  75 F0                jne    loc_916            ; Jump if not equal
  10927. F000:BD1B  EB 00                jmp    short loc_917        ; (BD1D)
  10928. F000:BD1D            loc_917:                    ;  xref F000:BD05, BD1B
  10929. F000:BD1D  FB                    sti                ; Enable interrupts
  10930. F000:BD1E  B4 0F                mov    ah,0Fh
  10931. F000:BD20  CD 10                int    10h            ; Video display   ah=functn 0Fh
  10932.                                         ;  get state, al=mode, bh=page
  10933. F000:BD22  3C 07                cmp    al,7
  10934. F000:BD24  74 02                je    short loc_918        ; Jump if equal
  10935. F000:BD26  B0 03                mov    al,3
  10936. F000:BD28            loc_918:                    ;  xref F000:BD24
  10937. F000:BD28  B4 00                mov    ah,0
  10938. F000:BD2A  CD 10                int    10h            ; Video display   ah=functn 00h
  10939.                                         ;  set display mode in al
  10940. F000:BD2C  B7 00                mov    bh,0
  10941. F000:BD2E  B4 03                mov    ah,3
  10942. F000:BD30  CD 10                int    10h            ; Video display   ah=functn 03h
  10943.                                         ;  get cursor loc in dx, mode cx
  10944. F000:BD32  80 E5 9F                and    ch,9Fh
  10945. F000:BD35  80 CD 20                or    ch,20h            ; ' '
  10946. F000:BD38  B4 01                mov    ah,1
  10947. F000:BD3A  CD 10                int    10h            ; Video display   ah=functn 01h
  10948.                                         ;  set cursor mode in cx
  10949. F000:BD3C  2E: A0 E058                mov    al,cs:data_149        ; (F000:E058=0FFh)
  10950. F000:BD40  0A C0                or    al,al            ; Zero ?
  10951. F000:BD42  BB C838                mov    bx,0C838h
  10952. F000:BD45  74 09                jz    short loc_919        ; Jump if zero
  10953. F000:BD47  BB C828                mov    bx,0C828h
  10954. F000:BD4A  BE D812                mov    si,0D812h
  10955. F000:BD4D  E8 0926                call    sub_182            ; (C676)
  10956. F000:BD50            loc_919:                    ;  xref F000:BD45
  10957. F000:BD50  BE D827                mov    si,0D827h
  10958. F000:BD53  E8 0920                call    sub_182            ; (C676)
  10959. F000:BD56  BE D83B                mov    si,0D83Bh
  10960. F000:BD59  E8 091A                call    sub_182            ; (C676)
  10961. F000:BD5C            loc_920:                    ;  xref F000:BD6E
  10962. F000:BD5C  83 C3 04                add    bx,4
  10963. F000:BD5F            loc_921:                    ;  xref F000:BD70
  10964. F000:BD5F  2E: 8B 07                mov    ax,cs:[bx]
  10965. F000:BD62  89 46 00                mov    [bp],ax
  10966. F000:BD65  2E: 8B 47 02                mov    ax,cs:[bx+2]
  10967. F000:BD69  FF D0                call    ax            ;*
  10968. F000:BD6B  8B 5E 00                mov    bx,[bp]
  10969. F000:BD6E  73 EC                jnc    loc_920            ; Jump if carry=0
  10970. F000:BD70  74 ED                jz    loc_921            ; Jump if zero
  10971. F000:BD72  0A C0                or    al,al            ; Zero ?
  10972. F000:BD74  74 17                jz    short loc_922        ; Jump if zero
  10973. F000:BD76  FE C8                dec    al
  10974. F000:BD78  74 27                jz    short loc_923        ; Jump if zero
  10975.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 187
  10976.  
  10977. F000:BD7A  1E                    push    ds
  10978. F000:BD7B  33 C0                xor    ax,ax            ; Zero register
  10979. F000:BD7D  8E D8                mov    ds,ax
  10980.                         assume    ds:seg_a
  10981. F000:BD7F  A1 0467                mov    ax,@gen_io_ptr_        ; (0000:0467=522h)
  10982. F000:BD82  A3 0413                mov    main_ram_size_,ax    ; (0000:0413=280h)
  10983. F000:BD85  1F                    pop    ds
  10984. F000:BD86  B8 0003                mov    ax,3
  10985. F000:BD89  FF D0                call    ax            ;*
  10986. F000:BD8B  EB 14                jmp    short loc_923        ; (BDA1)
  10987. F000:BD8D            loc_922:                    ;  xref F000:BD74
  10988. F000:BD8D  B7 00                mov    bh,0
  10989. F000:BD8F  B4 03                mov    ah,3
  10990. F000:BD91  CD 10                int    10h            ; Video display   ah=functn 03h
  10991.                                         ;  get cursor loc in dx, mode cx
  10992. F000:BD93  80 E5 9F                and    ch,9Fh
  10993. F000:BD96  B4 01                mov    ah,1
  10994. F000:BD98  CD 10                int    10h            ; Video display   ah=functn 01h
  10995.                                         ;  set cursor mode in cx
  10996. F000:BD9A  8B E5                mov    sp,bp
  10997. F000:BD9C  83 C4 4A                add    sp,4Ah
  10998. F000:BD9F  5D                    pop    bp
  10999. F000:BDA0  C3                    retn
  11000. F000:BDA1            loc_923:                    ;  xref F000:BD78, BD8B
  11001. F000:BDA1  B4 0F                mov    ah,0Fh
  11002. F000:BDA3  CD 10                int    10h            ; Video display   ah=functn 0Fh
  11003.                                         ;  get state, al=mode, bh=page
  11004. F000:BDA5  B4 00                mov    ah,0
  11005. F000:BDA7  CD 10                int    10h            ; Video display   ah=functn 00h
  11006.                                         ;  set display mode in al
  11007. F000:BDA9  FA                    cli                ; Disable interrupts
  11008. F000:BDAA  FC                    cld                ; Clear direction
  11009. F000:BDAB  B8 268A                mov    ax,268Ah
  11010. F000:BDAE  E8 30FD                call    sub_258            ; (EEAE)
  11011. F000:BDB1  B8 828B                mov    ax,828Bh
  11012. F000:BDB4  E8 30F7                call    sub_258            ; (EEAE)
  11013. F000:BDB7  B0 8D                mov    al,8Dh
  11014. F000:BDB9  E8 30E3                call    sub_257            ; (EE9F)
  11015. F000:BDBC  B0 8C                mov    al,8Ch
  11016. F000:BDBE  E8 30DE                call    sub_257            ; (EE9F)
  11017. F000:BDC1  FB                    sti                ; Enable interrupts
  11018. F000:BDC2  BB 0007                mov    bx,7
  11019. F000:BDC5  BE D84E                mov    si,0D84Eh
  11020. F000:BDC8  E8 08AB                call    sub_182            ; (C676)
  11021. F000:BDCB  B2 00                mov    dl,0
  11022. F000:BDCD  E8 0962                call    sub_190            ; (C732)
  11023. F000:BDD0  B2 4E                mov    dl,4Eh            ; 'N'
  11024. F000:BDD2  E8 095D                call    sub_190            ; (C732)
  11025. F000:BDD5  B6 00                mov    dh,0
  11026. F000:BDD7  E8 096B                call    sub_191            ; (C745)
  11027. F000:BDDA  B8 0EC9                mov    ax,0EC9h
  11028. F000:BDDD  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11029.                                         ;  write char al, teletype mode
  11030. F000:BDDF  BA 004E                mov    dx,4Eh
  11031. F000:BDE2  B0 BB                mov    al,0BBh
  11032. F000:BDE4  E8 09AE                call    sub_195            ; (C795)
  11033. F000:BDE7  B6 02                mov    dh,2
  11034.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 188
  11035.  
  11036. F000:BDE9  E8 0959                call    sub_191            ; (C745)
  11037. F000:BDEC  B8 0ECC                mov    ax,0ECCh
  11038. F000:BDEF  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11039.                                         ;  write char al, teletype mode
  11040. F000:BDF1  B6 18                mov    dh,18h
  11041. F000:BDF3  E8 094F                call    sub_191            ; (C745)
  11042. F000:BDF6  B8 0EC8                mov    ax,0EC8h
  11043. F000:BDF9  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11044.                                         ;  write char al, teletype mode
  11045. F000:BDFB  BA 024E                mov    dx,24Eh
  11046. F000:BDFE  B0 B9                mov    al,0B9h
  11047. F000:BE00  E8 0992                call    sub_195            ; (C795)
  11048. F000:BE03  BA 0228                mov    dx,228h
  11049. F000:BE06  B0 CB                mov    al,0CBh
  11050. F000:BE08  E8 098A                call    sub_195            ; (C795)
  11051. F000:BE0B  BA 064E                mov    dx,64Eh
  11052. F000:BE0E  B0 B9                mov    al,0B9h
  11053. F000:BE10  E8 0982                call    sub_195            ; (C795)
  11054. F000:BE13  BA 0628                mov    dx,628h
  11055. F000:BE16  B0 C8                mov    al,0C8h
  11056. F000:BE18  E8 097A                call    sub_195            ; (C795)
  11057. F000:BE1B  B8 09CD                mov    ax,9CDh
  11058. F000:BE1E  B9 0025                mov    cx,25h
  11059. F000:BE21  CD 10                int    10h            ; Video display   ah=functn 09h
  11060.                                         ;  set char al & attrib bl @curs
  11061. F000:BE23  E8 133B                call    sub_210            ; (D161)
  11062. F000:BE26  E8 0667                call    sub_177            ; (C490)
  11063. F000:BE29  B6 12                mov    dh,12h
  11064. F000:BE2B  E8 0926                call    sub_192            ; (C754)
  11065. F000:BE2E  B6 16                mov    dh,16h
  11066. F000:BE30  E8 0921                call    sub_192            ; (C754)
  11067. F000:BE33  E8 1837                call    sub_221            ; (D66D)
  11068. F000:BE36  B4 05                mov    ah,5
  11069. F000:BE38  CD 1A                int    1Ah            ; Real time clock   ah=func 05h
  11070.                                         ;  set date  cx=year, dx=mon/day
  11071. F000:BE3A  E8 186A                call    sub_222            ; (D6A7)
  11072. F000:BE3D  B4 03                mov    ah,3
  11073. F000:BE3F  CD 1A                int    1Ah            ; Real time clock   ah=func 03h
  11074.                                         ;  set clock cx=hrs/min, dh=sec
  11075. F000:BE41  80 66 14 F3                and    byte ptr [bp+14h],0F3h
  11076. F000:BE45  80 4E 14 01                or    byte ptr [bp+14h],1
  11077. F000:BE49  BB 0007                mov    bx,7
  11078. F000:BE4C  BA 033E                mov    dx,33Eh
  11079. F000:BE4F  1E                    push    ds
  11080. F000:BE50  33 C0                xor    ax,ax            ; Zero register
  11081. F000:BE52  8E D8                mov    ds,ax
  11082. F000:BE54  A1 0467                mov    ax,@gen_io_ptr_        ; (0000:0467=522h)
  11083. F000:BE57  1F                    pop    ds
  11084. F000:BE58  89 46 15                mov    [bp+15h],ax
  11085. F000:BE5B  E8 0920                call    sub_194            ; (C77E)
  11086. F000:BE5E  BA 043E                mov    dx,43Eh
  11087. F000:BE61  B4 88                mov    ah,88h
  11088. F000:BE63  CD 15                int    15h            ; General services, ah=func 88h
  11089.                                         ;  get extended mem size/1Kb= ax
  11090. F000:BE65  89 46 17                mov    [bp+17h],ax
  11091. F000:BE68  E8 0913                call    sub_194            ; (C77E)
  11092. F000:BE6B  CD 11                int    11h            ; Put equipment bits in ax
  11093.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 189
  11094.  
  11095. F000:BE6D  80 66 14 FD                and    byte ptr [bp+14h],0FDh
  11096. F000:BE71  24 02                and    al,2
  11097. F000:BE73  74 04                jz    short loc_924        ; Jump if zero
  11098. F000:BE75  80 4E 14 02                or    byte ptr [bp+14h],2
  11099. F000:BE79            loc_924:                    ;  xref F000:BE73
  11100. F000:BE79  8A D0                mov    dl,al
  11101. F000:BE7B  9C                    pushf                ; Push flags
  11102. F000:BE7C  FA                    cli                ; Disable interrupts
  11103. F000:BE7D  B8 F000                mov    ax,seg_d
  11104. F000:BE80  50                    push    ax
  11105. F000:BE81  9D                    popf                ; Pop flags
  11106. F000:BE82  9C                    pushf                ; Push flags
  11107. F000:BE83  58                    pop    ax
  11108. F000:BE84  80 E4 F0                and    ah,0F0h
  11109. F000:BE87  74 0E                jz    short loc_925        ; Jump if zero
  11110. F000:BE89  66| 33 C0                xor    eax,eax            ; Zero register
  11111. F000:BE8C  CD 11                int    11h            ; Put equipment bits in ax
  11112. F000:BE8E  66| C1 E0 08                shl    eax,8            ; Shift w/zeros fill
  11113. F000:BE92  73 03                jnc    short loc_925        ; Jump if carry=0
  11114. F000:BE94  80 CA 01                or    dl,1
  11115. F000:BE97            loc_925:                    ;  xref F000:BE87, BE92
  11116. F000:BE97  9D                    popf                ; Pop flags
  11117. F000:BE98  8A C2                mov    al,dl
  11118. F000:BE9A  BE C7E8                mov    si,0C7E8h
  11119. F000:BE9D  E8 093C                call    sub_198            ; (C7DC)
  11120. F000:BEA0  BA 053D                mov    dx,53Dh
  11121. F000:BEA3  E8 07C9                call    sub_181            ; (C66F)
  11122. F000:BEA6  1E                    push    ds
  11123. F000:BEA7  33 C0                xor    ax,ax            ; Zero register
  11124. F000:BEA9  8E D8                mov    ds,ax
  11125. F000:BEAB  A1 0490                mov    ax,word ptr hdsk0_media_st_    ; (0000:0490=702h)
  11126. F000:BEAE  1F                    pop    ds
  11127. F000:BEAF  24 07                and    al,7
  11128. F000:BEB1  74 10                jz    short loc_926        ; Jump if zero
  11129. F000:BEB3  3C 02                cmp    al,2
  11130. F000:BEB5  74 0C                je    short loc_926        ; Jump if equal
  11131. F000:BEB7  3C 03                cmp    al,3
  11132. F000:BEB9  B0 01                mov    al,1
  11133. F000:BEBB  74 06                jz    short loc_926        ; Jump if zero
  11134. F000:BEBD  8A 46 10                mov    al,[bp+10h]
  11135. F000:BEC0  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  11136. F000:BEC3            loc_926:                    ;  xref F000:BEB1, BEB5, BEBB
  11137. F000:BEC3  50                    push    ax
  11138. F000:BEC4  BA 0516                mov    dx,516h
  11139. F000:BEC7  E8 0572                call    sub_174            ; (C43C)
  11140. F000:BECA  58                    pop    ax
  11141. F000:BECB  86 C4                xchg    al,ah
  11142. F000:BECD  24 07                and    al,7
  11143. F000:BECF  74 0F                jz    short loc_927        ; Jump if zero
  11144. F000:BED1  3C 02                cmp    al,2
  11145. F000:BED3  74 0B                je    short loc_927        ; Jump if equal
  11146. F000:BED5  3C 03                cmp    al,3
  11147. F000:BED7  B0 01                mov    al,1
  11148. F000:BED9  74 05                jz    short loc_927        ; Jump if zero
  11149. F000:BEDB  8A 46 10                mov    al,[bp+10h]
  11150. F000:BEDE  24 0F                and    al,0Fh
  11151. F000:BEE0            loc_927:                    ;  xref F000:BECF, BED3, BED9
  11152.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 190
  11153.  
  11154. F000:BEE0  50                    push    ax
  11155. F000:BEE1  BA 0616                mov    dx,616h
  11156. F000:BEE4  E8 0555                call    sub_174            ; (C43C)
  11157. F000:BEE7  58                    pop    ax
  11158. F000:BEE8  80 66 14 3F                and    byte ptr [bp+14h],3Fh    ; '?'
  11159. F000:BEEC  0A C0                or    al,al            ; Zero ?
  11160. F000:BEEE  74 08                jz    short loc_928        ; Jump if zero
  11161. F000:BEF0  0A E4                or    ah,ah            ; Zero ?
  11162. F000:BEF2  74 04                jz    short loc_928        ; Jump if zero
  11163. F000:BEF4  80 4E 14 40                or    byte ptr [bp+14h],40h    ; '@'
  11164. F000:BEF8            loc_928:                    ;  xref F000:BEEE, BEF2
  11165. F000:BEF8  C0 E4 04                shl    ah,4            ; Shift w/zeros fill
  11166. F000:BEFB  0A C4                or    al,ah
  11167. F000:BEFD  88 46 10                mov    [bp+10h],al
  11168. F000:BF00  C7 46 06 0000            mov    word ptr [bp+6],0
  11169. F000:BF05  8A 46 12                mov    al,[bp+12h]
  11170. F000:BF08  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  11171. F000:BF0B  24 0F                and    al,0Fh
  11172. F000:BF0D  3C 0F                cmp    al,0Fh
  11173. F000:BF0F  75 03                jne    short loc_929        ; Jump if not equal
  11174. F000:BF11  8A 46 19                mov    al,[bp+19h]
  11175. F000:BF14            loc_929:                    ;  xref F000:BF0F
  11176. F000:BF14  BA 0816                mov    dx,816h
  11177. F000:BF17  E8 036B                call    sub_166            ; (C285)
  11178. F000:BF1A  C7 46 06 0009            mov    word ptr [bp+6],9
  11179. F000:BF1F  8A 46 12                mov    al,[bp+12h]
  11180. F000:BF22  24 0F                and    al,0Fh
  11181. F000:BF24  3C 0F                cmp    al,0Fh
  11182. F000:BF26  75 03                jne    short loc_930        ; Jump if not equal
  11183. F000:BF28  8A 46 1A                mov    al,[bp+1Ah]
  11184. F000:BF2B            loc_930:                    ;  xref F000:BF26
  11185. F000:BF2B  BA 0916                mov    dx,916h
  11186. F000:BF2E  E8 0354                call    sub_166            ; (C285)
  11187. F000:BF31  CD 11                int    11h            ; Put equipment bits in ax
  11188. F000:BF33  1E                    push    ds
  11189. F000:BF34  33 F6                xor    si,si            ; Zero register
  11190. F000:BF36  8E DE                mov    ds,si
  11191. F000:BF38  8C CE                mov    si,cs
  11192. F000:BF3A  39 36 0042                cmp    vectr_10h_seg,si    ; (0000:0042=0D3D1h)
  11193. F000:BF3E  1F                    pop    ds
  11194. F000:BF3F  74 02                jz    short loc_931        ; Jump if zero
  11195. F000:BF41  B0 00                mov    al,0
  11196. F000:BF43            loc_931:                    ;  xref F000:BF3F
  11197. F000:BF43  24 30                and    al,30h            ; '0'
  11198. F000:BF45  80 66 14 CF                and    byte ptr [bp+14h],0CFh
  11199. F000:BF49  08 46 14                or    [bp+14h],al
  11200. F000:BF4C  F6 46 37 02                test    byte ptr [bp+37h],2
  11201. F000:BF50  75 02                jnz    short loc_932        ; Jump if not zero
  11202. F000:BF52  B0 40                mov    al,40h            ; '@'
  11203. F000:BF54            loc_932:                    ;  xref F000:BF50
  11204. F000:BF54  C0 C0 04                rol    al,4            ; Rotate
  11205. F000:BF57  BE C7F0                mov    si,0C7F0h
  11206. F000:BF5A  E8 087F                call    sub_198            ; (C7DC)
  11207. F000:BF5D  BA 0A16                mov    dx,0A16h
  11208. F000:BF60  E8 070C                call    sub_181            ; (C66F)
  11209. F000:BF63  F6 46 37 01                test    byte ptr [bp+37h],1
  11210. F000:BF67  BE DA7F                mov    si,0DA7Fh
  11211.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 191
  11212.  
  11213. F000:BF6A  74 03                jz    short loc_933        ; Jump if zero
  11214. F000:BF6C  BE DA6E                mov    si,0DA6Eh
  11215. F000:BF6F            loc_933:                    ;  xref F000:BF6A
  11216. F000:BF6F  BA 0B16                mov    dx,0B16h
  11217. F000:BF72  E8 06FA                call    sub_181            ; (C66F)
  11218. F000:BF75  E8 07F3                call    sub_193            ; (C76B)
  11219. F000:BF78  F6 46 38 10                test    byte ptr [bp+38h],10h
  11220. F000:BF7C  BE DAC7                mov    si,0DAC7h
  11221. F000:BF7F  74 03                jz    short loc_934        ; Jump if zero
  11222. F000:BF81  BE DAC2                mov    si,0DAC2h
  11223. F000:BF84            loc_934:                    ;  xref F000:BF7F
  11224. F000:BF84  BA 0D16                mov    dx,0D16h
  11225. F000:BF87  E8 06E5                call    sub_181            ; (C66F)
  11226. F000:BF8A  F6 46 38 40                test    byte ptr [bp+38h],40h    ; '@'
  11227. F000:BF8E  BE DA9C                mov    si,0DA9Ch
  11228. F000:BF91  74 03                jz    short loc_935        ; Jump if zero
  11229. F000:BF93  BE DA90                mov    si,0DA90h
  11230. F000:BF96            loc_935:                    ;  xref F000:BF91
  11231. F000:BF96  BA 0E16                mov    dx,0E16h
  11232. F000:BF99  E8 06D3                call    sub_181            ; (C66F)
  11233. F000:BF9C  E8 1202                call    sub_211            ; (D1A1)
  11234. F000:BF9F  BB C848                mov    bx,0C848h
  11235. F000:BFA2  EB 03                jmp    short loc_937        ; (BFA7)
  11236. F000:BFA4            loc_936:                    ;  xref F000:BFCA
  11237. F000:BFA4  83 C3 04                add    bx,4
  11238. F000:BFA7            loc_937:                    ;  xref F000:BFA2, BFCC
  11239. F000:BFA7  2E: 8B 07                mov    ax,cs:[bx]
  11240. F000:BFAA  89 46 00                mov    [bp],ax
  11241. F000:BFAD            loc_938:                    ;  xref F000:C002
  11242. F000:BFAD  53                    push    bx
  11243. F000:BFAE  B7 00                mov    bh,0
  11244. F000:BFB0  B4 03                mov    ah,3
  11245. F000:BFB2  CD 10                int    10h            ; Video display   ah=functn 03h
  11246.                                         ;  get cursor loc in dx, mode cx
  11247. F000:BFB4  80 E5 9F                and    ch,9Fh
  11248. F000:BFB7  80 CD 20                or    ch,20h            ; ' '
  11249. F000:BFBA  B4 01                mov    ah,1
  11250. F000:BFBC  CD 10                int    10h            ; Video display   ah=functn 01h
  11251.                                         ;  set cursor mode in cx
  11252. F000:BFBE  5B                    pop    bx
  11253. F000:BFBF  2E: 8B 47 02                mov    ax,cs:[bx+2]
  11254. F000:BFC3  53                    push    bx
  11255. F000:BFC4  FF D0                call    ax            ;*
  11256. F000:BFC6  58                    pop    ax
  11257. F000:BFC7  8B 5E 00                mov    bx,[bp]
  11258. F000:BFCA  73 D8                jnc    loc_936            ; Jump if carry=0
  11259. F000:BFCC  74 D9                jz    loc_937            ; Jump if zero
  11260. F000:BFCE  50                    push    ax
  11261. F000:BFCF  B7 00                mov    bh,0
  11262. F000:BFD1  B4 03                mov    ah,3
  11263. F000:BFD3  CD 10                int    10h            ; Video display   ah=functn 03h
  11264.                                         ;  get cursor loc in dx, mode cx
  11265. F000:BFD5  80 E5 9F                and    ch,9Fh
  11266. F000:BFD8  B4 01                mov    ah,1
  11267. F000:BFDA  CD 10                int    10h            ; Video display   ah=functn 01h
  11268.                                         ;  set cursor mode in cx
  11269. F000:BFDC  BE DE70                mov    si,0DE70h
  11270.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 192
  11271.  
  11272. F000:BFDF  BA 1406                mov    dx,1406h
  11273. F000:BFE2  E8 068A                call    sub_181            ; (C66F)
  11274. F000:BFE5  5B                    pop    bx
  11275. F000:BFE6            loc_939:                    ;  xref F000:BFFD, C022
  11276. F000:BFE6  B4 00                mov    ah,0
  11277. F000:BFE8  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  11278.                                         ;  get keybd char in al, ah=scan
  11279. F000:BFEA  3C 79                cmp    al,79h            ; 'y'
  11280. F000:BFEC  74 36                je    short loc_944        ; Jump if equal
  11281. F000:BFEE  3C 59                cmp    al,59h            ; 'Y'
  11282. F000:BFF0  74 32                je    short loc_944        ; Jump if equal
  11283. F000:BFF2  3C 6E                cmp    al,6Eh            ; 'n'
  11284. F000:BFF4  74 0E                je    short loc_941        ; Jump if equal
  11285. F000:BFF6  3C 4E                cmp    al,4Eh            ; 'N'
  11286. F000:BFF8  74 0A                je    short loc_941        ; Jump if equal
  11287. F000:BFFA  80 FC 01                cmp    ah,1
  11288. F000:BFFD  75 E7                jne    loc_939            ; Jump if not equal
  11289. F000:BFFF            loc_940:                    ;  xref F000:C00E
  11290. F000:BFFF  E8 048E                call    sub_177            ; (C490)
  11291. F000:C002  EB A9                jmp    short loc_938        ; (BFAD)
  11292. F000:C004            loc_941:                    ;  xref F000:BFF4, BFF8
  11293. F000:C004  B4 0E                mov    ah,0Eh
  11294. F000:C006  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11295.                                         ;  write char al, teletype mode
  11296. F000:C008            loc_942:                    ;  xref F000:C012
  11297. F000:C008  B4 00                mov    ah,0
  11298. F000:C00A  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  11299.                                         ;  get keybd char in al, ah=scan
  11300. F000:C00C  3C 0D                cmp    al,0Dh
  11301. F000:C00E  74 EF                je    loc_940            ; Jump if equal
  11302. F000:C010  3C 08                cmp    al,8
  11303. F000:C012  75 F4                jne    loc_942            ; Jump if not equal
  11304. F000:C014            loc_943:                    ;  xref F000:C034
  11305. F000:C014  B4 0E                mov    ah,0Eh
  11306. F000:C016  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11307.                                         ;  write char al, teletype mode
  11308. F000:C018  B8 0E20                mov    ax,0E20h
  11309. F000:C01B  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11310.                                         ;  write char al, teletype mode
  11311. F000:C01D  B8 0E08                mov    ax,0E08h
  11312. F000:C020  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11313.                                         ;  write char al, teletype mode
  11314. F000:C022  EB C2                jmp    short loc_939        ; (BFE6)
  11315. F000:C024            loc_944:                    ;  xref F000:BFEC, BFF0
  11316. F000:C024  B4 0E                mov    ah,0Eh
  11317. F000:C026  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11318.                                         ;  write char al, teletype mode
  11319. F000:C028            loc_945:                    ;  xref F000:C032
  11320. F000:C028  B4 00                mov    ah,0
  11321. F000:C02A  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  11322.                                         ;  get keybd char in al, ah=scan
  11323. F000:C02C  3C 0D                cmp    al,0Dh
  11324. F000:C02E  74 06                je    short loc_946        ; Jump if equal
  11325. F000:C030  3C 08                cmp    al,8
  11326. F000:C032  75 F4                jne    loc_945            ; Jump if not equal
  11327. F000:C034  EB DE                jmp    short loc_943        ; (C014)
  11328. F000:C036            loc_946:                    ;  xref F000:C02E
  11329.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 193
  11330.  
  11331. F000:C036  E8 11BA                call    sub_212            ; (D1F3)
  11332. F000:C039  FA                    cli                ; Disable interrupts
  11333. F000:C03A  BE 0010                mov    si,10h
  11334. F000:C03D  B0 90                mov    al,90h
  11335. F000:C03F            loc_947:                    ;  xref F000:C04D
  11336. F000:C03F  8A 22                mov    ah,[bp+si]
  11337. F000:C041  3C B2                cmp    al,0B2h
  11338. F000:C043  74 03                je    short loc_948        ; Jump if equal
  11339. F000:C045  E8 2E66                call    sub_258            ; (EEAE)
  11340. F000:C048            loc_948:                    ;  xref F000:C043
  11341. F000:C048  46                    inc    si
  11342. F000:C049  FE C0                inc    al
  11343. F000:C04B  3C C0                cmp    al,0C0h
  11344. F000:C04D  75 F0                jne    loc_947            ; Jump if not equal
  11345. F000:C04F  33 C9                xor    cx,cx            ; Zero register
  11346. F000:C051  33 D2                xor    dx,dx            ; Zero register
  11347. F000:C053  B8 9090                mov    ax,9090h
  11348. F000:C056            loc_949:                    ;  xref F000:C063
  11349. F000:C056  E8 2E46                call    sub_257            ; (EE9F)
  11350. F000:C059  8A C8                mov    cl,al
  11351. F000:C05B  03 D1                add    dx,cx
  11352. F000:C05D  FE C4                inc    ah
  11353. F000:C05F  8A C4                mov    al,ah
  11354. F000:C061  3C AE                cmp    al,0AEh
  11355. F000:C063  75 F1                jne    loc_949            ; Jump if not equal
  11356. F000:C065  8A E6                mov    ah,dh
  11357. F000:C067  E8 2E44                call    sub_258            ; (EEAE)
  11358. F000:C06A  8A E2                mov    ah,dl
  11359. F000:C06C  B0 AF                mov    al,0AFh
  11360. F000:C06E  E8 2E3D                call    sub_258            ; (EEAE)
  11361. F000:C071  B8 008E                mov    ax,8Eh
  11362. F000:C074  E8 2E37                call    sub_258            ; (EEAE)
  11363. F000:C077  B8 008F                mov    ax,8Fh
  11364. F000:C07A  E8 2E31                call    sub_258            ; (EEAE)
  11365. F000:C07D  1E                    push    ds
  11366. F000:C07E  33 C0                xor    ax,ax            ; Zero register
  11367. F000:C080  8E D8                mov    ds,ax
  11368. F000:C082  A2 0472                mov    byte ptr warm_boot_flag_,al    ; (0000:0472=0)
  11369. F000:C085  1F                    pop    ds
  11370. F000:C086  EA F000FFF0                jmp    far ptr power_on_reset    ; (FFF0)
  11371.                 sub_164        endp
  11372.   
  11373. F000:C08B  BE 12 D8 EB 08 BE            db    0BEh, 12h, 0D8h, 0EBh, 8, 0BEh
  11374. F000:C091  27 D8 EB 03 BE 3B            db    27h, 0D8h, 0EBh, 3, 0BEh, 3Bh
  11375. F000:C097  D8 56 E8 CD 05 E8            db    0D8h, 56h, 0E8h, 0CDh, 5, 0E8h
  11376. F000:C09D  23 06 5E 9C E8 D2            db    23h, 6, 5Eh, 9Ch, 0E8h, 0D2h
  11377. F000:C0A3  05 9D 2E 8A 04 C3            db    5, 9Dh, 2Eh, 8Ah, 4, 0C3h
  11378. F000:C0A9  8A 46 14 24 30 F6            db    8Ah, 46h, 14h, 24h, 30h, 0F6h
  11379. F000:C0AF  46 37 02 75 02 B0            db    46h, 37h, 2, 75h, 2, 0B0h
  11380. F000:C0B5  40 C0 C0 04 BE FA            db    40h, 0C0h, 0C0h, 4, 0BEh, 0FAh
  11381. F000:C0BB  C7 E8 1D 07 8B DE            db    0C7h, 0E8h, 1Dh, 7, 8Bh, 0DEh
  11382. F000:C0C1  BE 30 DC BA 16 0A            db    0BEh, 30h, 0DCh, 0BAh, 16h, 0Ah
  11383. F000:C0C7  E8 8F 03 9C 80 66            db    0E8h, 8Fh, 3, 9Ch, 80h, 66h
  11384. F000:C0CD  37 FD 0A C0 74 04            db    37h, 0FDh, 0Ah, 0C0h, 74h, 4
  11385. F000:C0D3  80 4E 37 02                db    80h, 4Eh, 37h, 2
  11386. F000:C0D7            loc_950:
  11387. F000:C0D7  24 30                and    al,30h            ; '0'
  11388.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 194
  11389.  
  11390. F000:C0D9  80 66 14 CF                and    byte ptr [bp+14h],0CFh
  11391. F000:C0DD  08 46 14                or    [bp+14h],al
  11392. F000:C0E0  9D                    popf                ; Pop flags
  11393. F000:C0E1  C3                    retn
  11394. F000:C0E2  BF 37 00 BE 5B DD            db    0BFh, 37h, 0, 0BEh, 5Bh, 0DDh
  11395. F000:C0E8  BA 16 0B B0 01 EB            db    0BAh, 16h, 0Bh, 0B0h, 1, 0EBh
  11396. F000:C0EE  00 84 03 BB 10 C9            db    0, 84h, 3, 0BBh, 10h, 0C9h
  11397. F000:C0F4  74 21 BB 08 C9 EB            db    74h, 21h, 0BBh, 8, 0C9h, 0EBh
  11398. F000:C0FA  1C 03 C1 7E C1 03            db    1Ch, 3, 0C1h, 7Eh, 0C1h, 3
  11399. F000:C100  C1 7E C1 FB C0 83            db    0C1h, 7Eh, 0C1h, 0FBh, 0C0h, 83h
  11400. F000:C106  C1 FB C0 83 C1 84            db    0C1h, 0FBh, 0C0h, 83h, 0C1h, 84h
  11401. F000:C10C  03 BB 03 C1 74 05            db    3, 0BBh, 3, 0C1h, 74h, 5
  11402. F000:C112  BB FB C0 EB 00            db    0BBh, 0FBh, 0C0h, 0EBh, 0
  11403. F000:C117            loc_951:
  11404. F000:C117  57                    push    di
  11405. F000:C118  50                    push    ax
  11406. F000:C119  E8 033D                call    sub_175            ; (C459)
  11407. F000:C11C  59                    pop    cx
  11408. F000:C11D  5F                    pop    di
  11409. F000:C11E  9C                    pushf                ; Push flags
  11410. F000:C11F  F6 D1                not    cl
  11411. F000:C121  20 0B                and    [bp+di],cl
  11412. F000:C123  0A C0                or    al,al            ; Zero ?
  11413. F000:C125  74 04                jz    short loc_952        ; Jump if zero
  11414. F000:C127  F6 D1                not    cl
  11415. F000:C129  08 0B                or    [bp+di],cl
  11416. F000:C12B            loc_952:                    ;  xref F000:C125
  11417. F000:C12B  9D                    popf                ; Pop flags
  11418. F000:C12C  C3                    retn
  11419. F000:C12D  56 E8 31 05 E8 84            db    56h, 0E8h, 31h, 5, 0E8h, 84h
  11420. F000:C133  05 5E 9C E8 36 05            db    5, 5Eh, 9Ch, 0E8h, 36h, 5
  11421. F000:C139  9D 2E 8A 04 C3 46            db    9Dh, 2Eh, 8Ah, 4, 0C3h, 46h
  11422. F000:C13F  C1 65 C1 46 C1 65            db    0C1h, 65h, 0C1h, 46h, 0C1h, 65h
  11423. F000:C145  C1 3E C1 6A C1 3E            db    0C1h, 3Eh, 0C1h, 6Ah, 0C1h, 3Eh
  11424. F000:C14B  C1 6A C1 BF 38 00            db    0C1h, 6Ah, 0C1h, 0BFh, 38h, 0
  11425. F000:C151  BE AD DD BA 16 0D            db    0BEh, 0ADh, 0DDh, 0BAh, 16h, 0Dh
  11426. F000:C157  B0 10 84 03 BB 3E            db    0B0h, 10h, 84h, 3, 0BBh, 3Eh
  11427. F000:C15D  C1 74 B7 BB 46 C1            db    0C1h, 74h, 0B7h, 0BBh, 46h, 0C1h
  11428. F000:C163  EB B2 BE C7 DA EB            db    0EBh, 0B2h, 0BEh, 0C7h, 0DAh, 0EBh
  11429. F000:C169  C3 BE C2 DA EB BE            db    0C3h, 0BEh, 0C2h, 0DAh, 0EBh, 0BEh
  11430. F000:C16F  BF 38 00 BE 2E DE            db    0BFh, 38h, 0, 0BEh, 2Eh, 0DEh
  11431. F000:C175  BA 16 0C B0 20 E8            db    0BAh, 16h, 0Ch, 0B0h, 20h, 0E8h
  11432. F000:C17B  8E FF C3 BE 90 DA            db    8Eh, 0FFh, 0C3h, 0BEh, 90h, 0DAh
  11433. F000:C181  EB AA BE 9C DA EB            db    0EBh, 0AAh, 0BEh, 9Ch, 0DAh, 0EBh
  11434. F000:C187  A5 BF 38 00 BE 2E            db    0A5h, 0BFh, 38h, 0, 0BEh, 2Eh
  11435. F000:C18D  DE BA 16 0E B0 40            db    0DEh, 0BAh, 16h, 0Eh, 0B0h, 40h
  11436. F000:C193  E9 75 FF 8A 46 10            db    0E9h, 75h, 0FFh, 8Ah, 46h, 10h
  11437. F000:C199  C0 E8 04 BA 16 05            db    0C0h, 0E8h, 4, 0BAh, 16h, 5
  11438. F000:C19F  E8 A6 02 9C 80 66            db    0E8h, 0A6h, 2, 9Ch, 80h, 66h
  11439. F000:C1A5  10 0F C0 E0 04 EB            db    10h, 0Fh, 0C0h, 0E0h, 4, 0EBh
  11440. F000:C1AB  0E 8A 46 10 BA 16            db    0Eh, 8Ah, 46h, 10h, 0BAh, 16h
  11441. F000:C1B1  06 E8 93 02 9C 80            db    6, 0E8h, 93h, 2, 9Ch, 80h
  11442. F000:C1B7  66 10 F0 50 8A 66            db    66h, 10h, 0F0h, 50h, 8Ah, 66h
  11443. F000:C1BD  10 08 46 10 80 66            db    10h, 8, 46h, 10h, 80h, 66h
  11444. F000:C1C3  14 3F 0A C0 74 08            db    14h, 3Fh, 0Ah, 0C0h, 74h, 8
  11445. F000:C1C9  0A E4 74 04 80 4E            db    0Ah, 0E4h, 74h, 4, 80h, 4Eh
  11446. F000:C1CF  14                    db    14h
  11447.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 195
  11448.  
  11449. F000:C1D0  40                    db    40h
  11450. F000:C1D1            loc_953:
  11451. F000:C1D1  58                    pop    ax
  11452. F000:C1D2  9D                    popf                ; Pop flags
  11453. F000:C1D3  C3                    retn
  11454. F000:C1D4  C7 46 06 00 00 8A            db    0C7h, 46h, 6, 0, 0, 8Ah
  11455. F000:C1DA  46 12 C0 E8 04 24            db    46h, 12h, 0C0h, 0E8h, 4, 24h
  11456. F000:C1E0  0F 3C 0F 75 03 8A            db    0Fh, 3Ch, 0Fh, 75h, 3, 8Ah
  11457. F000:C1E6  46 19 BA 16 08 E8            db    46h, 19h, 0BAh, 16h, 8, 0E8h
  11458. F000:C1EC  50 00 9C 3C 0F 73            db    50h, 0, 9Ch, 3Ch, 0Fh, 73h
  11459. F000:C1F2  10 C0 E0 04 80 66            db    10h, 0C0h, 0E0h, 4, 80h, 66h
  11460. F000:C1F8  12 0F 08 46 12 C6            db    12h, 0Fh, 8, 46h, 12h, 0C6h
  11461. F000:C1FE  46 19 00 9D C3            db    46h, 19h, 0, 9Dh, 0C3h
  11462. F000:C203            loc_954:
  11463. F000:C203  80 4E 12 F0                or    byte ptr [bp+12h],0F0h
  11464. F000:C207  88 46 19                mov    [bp+19h],al
  11465. F000:C20A  9D                    popf                ; Pop flags
  11466. F000:C20B  C3                    retn
  11467. F000:C20C  C7 46 06 09 00 8A            db    0C7h, 46h, 6, 9, 0, 8Ah
  11468. F000:C212  46 12 24 0F 3C 0F            db    46h, 12h, 24h, 0Fh, 3Ch, 0Fh
  11469. F000:C218  75 03 8A 46 1A BA            db    75h, 3, 8Ah, 46h, 1Ah, 0BAh
  11470. F000:C21E  16 09 E8 1B 00 9C            db    16h, 9, 0E8h, 1Bh, 0, 9Ch
  11471. F000:C224  3C 0F 73 0D 80 66            db    3Ch, 0Fh, 73h, 0Dh, 80h, 66h
  11472. F000:C22A  12 F0 08 46 12 C6            db    12h, 0F0h, 8, 46h, 12h, 0C6h
  11473. F000:C230  46 1A 00 9D C3            db    46h, 1Ah, 0, 9Dh, 0C3h
  11474. F000:C235            loc_955:
  11475. F000:C235  80 4E 12 0F                or    byte ptr [bp+12h],0Fh
  11476. F000:C239  88 46 1A                mov    [bp+1Ah],al
  11477. F000:C23C  9D                    popf                ; Pop flags
  11478. F000:C23D  C3                    retn
  11479.   
  11480.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11481.                 ;                   SUBROUTINE
  11482.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11483.   
  11484.                 sub_165        proc    near
  11485. F000:C23E  C6 46 09 FF                mov    byte ptr [bp+9],0FFh
  11486. F000:C242  89 56 04                mov    [bp+4],dx
  11487. F000:C245  BE DCD4                mov    si,0DCD4h
  11488. F000:C248  E8 023A                call    sub_176            ; (C485)
  11489. F000:C24B            loc_956:                    ;  xref F000:C26C, C270, C27A, C27E
  11490. F000:C24B  88 46 08                mov    [bp+8],al
  11491. F000:C24E  E8 003E                call    sub_167            ; (C28F)
  11492. F000:C251  8A 46 08                mov    al,[bp+8]
  11493. F000:C254  9C                    pushf                ; Push flags
  11494. F000:C255  73 29                jnc    short loc_959        ; Jump if carry=0
  11495. F000:C257  74 27                jz    short loc_959        ; Jump if zero
  11496. F000:C259  80 FC 01                cmp    ah,1
  11497. F000:C25C  74 22                je    short loc_959        ; Jump if equal
  11498. F000:C25E  9D                    popf                ; Pop flags
  11499. F000:C25F  80 FC 49                cmp    ah,49h            ; 'I'
  11500. F000:C262  74 0E                je    short loc_958        ; Jump if equal
  11501. F000:C264            loc_957:                    ;  xref F000:C268
  11502. F000:C264  FE C0                inc    al
  11503. F000:C266  3C 0F                cmp    al,0Fh
  11504. F000:C268  74 FA                je    loc_957            ; Jump if equal
  11505. F000:C26A  3C 30                cmp    al,30h            ; '0'
  11506.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 196
  11507.  
  11508. F000:C26C  75 DD                jne    loc_956            ; Jump if not equal
  11509. F000:C26E  B0 00                mov    al,0
  11510. F000:C270  EB D9                jmp    short loc_956        ; (C24B)
  11511. F000:C272            loc_958:                    ;  xref F000:C262, C276
  11512. F000:C272  FE C8                dec    al
  11513. F000:C274  3C 0F                cmp    al,0Fh
  11514. F000:C276  74 FA                je    loc_958            ; Jump if equal
  11515. F000:C278  3C FF                cmp    al,0FFh
  11516. F000:C27A  75 CF                jne    loc_956            ; Jump if not equal
  11517. F000:C27C  B0 2F                mov    al,2Fh            ; '/'
  11518. F000:C27E  EB CB                jmp    short loc_956        ; (C24B)
  11519. F000:C280            loc_959:                    ;  xref F000:C255, C257, C25C
  11520. F000:C280  E8 020D                call    sub_177            ; (C490)
  11521. F000:C283  9D                    popf                ; Pop flags
  11522. F000:C284  C3                    retn
  11523.                 sub_165        endp
  11524.   
  11525.   
  11526.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11527.                 ;                   SUBROUTINE
  11528.                 ;
  11529.                 ;         Called from:     F000:BF17, BF2E
  11530.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11531.   
  11532.                 sub_166        proc    near
  11533. F000:C285  C6 46 09 00                mov    byte ptr [bp+9],0
  11534. F000:C289  89 56 04                mov    [bp+4],dx
  11535. F000:C28C  88 46 08                mov    [bp+8],al
  11536.   
  11537.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11538.                 ;
  11539.                 ;         Called from:     F000:C24E
  11540.   
  11541.                 sub_167:
  11542. F000:C28F  B4 00                mov    ah,0
  11543. F000:C291  8A 46 08                mov    al,[bp+8]
  11544. F000:C294  3C 2F                cmp    al,2Fh            ; '/'
  11545. F000:C296  75 3D                jne    short loc_963        ; Jump if not equal
  11546. F000:C298  E8 0149                call    sub_171            ; (C3E4)
  11547. F000:C29B  80 7E 09 00                cmp    byte ptr [bp+9],0
  11548. F000:C29F  74 28                je    short loc_962        ; Jump if equal
  11549. F000:C2A1  BB C938                mov    bx,0C938h
  11550. F000:C2A4  50                    push    ax
  11551. F000:C2A5            loc_960:                    ;  xref F000:C2C6
  11552. F000:C2A5  83 C3 04                add    bx,4
  11553. F000:C2A8            loc_961:                    ;  xref F000:C2C1
  11554. F000:C2A8  58                    pop    ax
  11555. F000:C2A9  2E: 8B 07                mov    ax,cs:[bx]
  11556. F000:C2AC  89 46 02                mov    [bp+2],ax
  11557. F000:C2AF  2E: 8B 47 02                mov    ax,cs:[bx+2]
  11558. F000:C2B3  FF D0                call    ax            ;*
  11559. F000:C2B5  9C                    pushf                ; Push flags
  11560. F000:C2B6  50                    push    ax
  11561. F000:C2B7  E8 012A                call    sub_171            ; (C3E4)
  11562. F000:C2BA  58                    pop    ax
  11563. F000:C2BB  8B 5E 02                mov    bx,[bp+2]
  11564. F000:C2BE  80 FC 4B                cmp    ah,4Bh            ; 'K'
  11565.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 197
  11566.  
  11567. F000:C2C1  74 E5                je    loc_961            ; Jump if equal
  11568. F000:C2C3  80 FC 4D                cmp    ah,4Dh            ; 'M'
  11569. F000:C2C6  74 DD                je    loc_960            ; Jump if equal
  11570. F000:C2C8  9D                    popf                ; Pop flags
  11571. F000:C2C9            loc_962:                    ;  xref F000:C29F
  11572. F000:C2C9  9C                    pushf                ; Push flags
  11573. F000:C2CA  BE DB54                mov    si,0DB54h
  11574. F000:C2CD  8B 56 04                mov    dx,[bp+4]
  11575. F000:C2D0  E8 039C                call    sub_181            ; (C66F)
  11576. F000:C2D3  9D                    popf                ; Pop flags
  11577. F000:C2D4  C3                    retn
  11578. F000:C2D5            loc_963:                    ;  xref F000:C296
  11579. F000:C2D5  3C 00                cmp    al,0
  11580. F000:C2D7  75 26                jne    short loc_965        ; Jump if not equal
  11581. F000:C2D9  E8 0136                call    sub_172            ; (C412)
  11582. F000:C2DC  BE DA7F                mov    si,0DA7Fh
  11583. F000:C2DF  8B 56 04                mov    dx,[bp+4]
  11584. F000:C2E2  E8 037D                call    sub_179            ; (C662)
  11585. F000:C2E5  80 7E 09 00                cmp    byte ptr [bp+9],0
  11586. F000:C2E9  74 03                je    short loc_964        ; Jump if equal
  11587. F000:C2EB  E8 03CA                call    sub_183            ; (C6B8)
  11588. F000:C2EE            loc_964:                    ;  xref F000:C2E9
  11589. F000:C2EE  9C                    pushf                ; Push flags
  11590. F000:C2EF  50                    push    ax
  11591. F000:C2F0  E8 012D                call    sub_173            ; (C420)
  11592. F000:C2F3  58                    pop    ax
  11593. F000:C2F4  BE DA7F                mov    si,0DA7Fh
  11594. F000:C2F7  8B 56 04                mov    dx,[bp+4]
  11595. F000:C2FA  E8 0372                call    sub_181            ; (C66F)
  11596. F000:C2FD  9D                    popf                ; Pop flags
  11597. F000:C2FE  C3                    retn
  11598. F000:C2FF            loc_965:                    ;  xref F000:C2D7
  11599. F000:C2FF  50                    push    ax
  11600. F000:C300  E8 010F                call    sub_172            ; (C412)
  11601. F000:C303  B8 0E20                mov    ax,0E20h
  11602. F000:C306  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11603.                                         ;  write char al, teletype mode
  11604. F000:C308  58                    pop    ax
  11605. F000:C309  50                    push    ax
  11606. F000:C30A  E8 040D                call    sub_188            ; (C71A)
  11607. F000:C30D  58                    pop    ax
  11608. F000:C30E  48                    dec    ax
  11609. F000:C30F  C1 E0 04                shl    ax,4            ; Shift w/zeros fill
  11610. F000:C312  05 E401                add    ax,0E401h
  11611. F000:C315  53                    push    bx
  11612. F000:C316  8B D8                mov    bx,ax
  11613. F000:C318  2E: 8B 07                mov    ax,cs:[bx]
  11614. F000:C31B  89 46 40                mov    [bp+40h],ax
  11615. F000:C31E  2E: 8A 47 02                mov    al,cs:[bx+2]
  11616. F000:C322  88 46 42                mov    [bp+42h],al
  11617. F000:C325  2E: 8B 47 05                mov    ax,cs:[bx+5]
  11618. F000:C329  89 46 43                mov    [bp+43h],ax
  11619. F000:C32C  2E: 8B 47 0C                mov    ax,cs:[bx+0Ch]
  11620. F000:C330  89 46 45                mov    [bp+45h],ax
  11621. F000:C333  2E: 8A 47 0E                mov    al,cs:[bx+0Eh]
  11622. F000:C337  88 46 47                mov    [bp+47h],al
  11623. F000:C33A  5B                    pop    bx
  11624.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 198
  11625.  
  11626. F000:C33B  E8 001F                call    sub_168            ; (C35D)
  11627. F000:C33E  80 7E 09 00                cmp    byte ptr [bp+9],0
  11628. F000:C342  74 03                je    short loc_966        ; Jump if equal
  11629. F000:C344  E8 0371                call    sub_183            ; (C6B8)
  11630. F000:C347            loc_966:                    ;  xref F000:C342
  11631. F000:C347  9C                    pushf                ; Push flags
  11632. F000:C348  50                    push    ax
  11633. F000:C349  E8 00D4                call    sub_173            ; (C420)
  11634. F000:C34C  B8 0E20                mov    ax,0E20h
  11635. F000:C34F  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11636.                                         ;  write char al, teletype mode
  11637. F000:C351  8A 46 08                mov    al,[bp+8]
  11638. F000:C354  E8 03C1                call    sub_187            ; (C718)
  11639. F000:C357  E8 0008                call    sub_169            ; (C362)
  11640. F000:C35A  58                    pop    ax
  11641. F000:C35B  9D                    popf                ; Pop flags
  11642. F000:C35C  C3                    retn
  11643.                 sub_166        endp
  11644.   
  11645.   
  11646.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11647.                 ;                   SUBROUTINE
  11648.                 ;
  11649.                 ;         Called from:     F000:C33B
  11650.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11651.   
  11652.                 sub_168        proc    near
  11653. F000:C35D  BB 0070                mov    bx,70h
  11654. F000:C360  EB 03                jmp    short loc_967        ; (C365)
  11655.   
  11656.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11657.                 ;
  11658.                 ;         Called from:     F000:C357, C40E
  11659.   
  11660.                 sub_169:
  11661. F000:C362  BB 0007                mov    bx,7
  11662. F000:C365            loc_967:                    ;  xref F000:C360
  11663. F000:C365  8A 46 47                mov    al,[bp+47h]
  11664. F000:C368  B4 00                mov    ah,0
  11665. F000:C36A  8A 56 42                mov    dl,[bp+42h]
  11666. F000:C36D  F6 E2                mul    dl            ; ax = reg * al
  11667. F000:C36F  8B 56 40                mov    dx,[bp+40h]
  11668. F000:C372  F7 E2                mul    dx            ; dx:ax = reg * ax
  11669. F000:C374  B9 0800                mov    cx,800h
  11670. F000:C377  3B D1                cmp    dx,cx
  11671. F000:C379  72 05                jb    short loc_968        ; Jump if below
  11672. F000:C37B  B8 FFFF                mov    ax,0FFFFh
  11673. F000:C37E  EB 0C                jmp    short loc_969        ; (C38C)
  11674. F000:C380            loc_968:                    ;  xref F000:C379
  11675. F000:C380  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  11676. F000:C382  D1 E9                shr    cx,1            ; Shift w/zeros fill
  11677. F000:C384  3B CA                cmp    cx,dx
  11678. F000:C386  77 04                ja    short loc_969        ; Jump if above
  11679. F000:C388  40                    inc    ax
  11680. F000:C389  75 01                jnz    short loc_969        ; Jump if not zero
  11681. F000:C38B  48                    dec    ax
  11682. F000:C38C            loc_969:                    ;  xref F000:C37E, C386, C389
  11683.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 199
  11684.  
  11685. F000:C38C  89 46 48                mov    [bp+48h],ax
  11686. F000:C38F  8B 56 04                mov    dx,[bp+4]
  11687. F000:C392  80 C2 12                add    dl,12h
  11688. F000:C395  8B 46 40                mov    ax,[bp+40h]
  11689. F000:C398  E8 003A                call    sub_170            ; (C3D5)
  11690. F000:C39B  8A 46 42                mov    al,[bp+42h]
  11691. F000:C39E  B4 00                mov    ah,0
  11692. F000:C3A0  E8 0032                call    sub_170            ; (C3D5)
  11693. F000:C3A3  8B 46 43                mov    ax,[bp+43h]
  11694. F000:C3A6  E8 002C                call    sub_170            ; (C3D5)
  11695. F000:C3A9  8B 46 45                mov    ax,[bp+45h]
  11696. F000:C3AC  E8 0026                call    sub_170            ; (C3D5)
  11697. F000:C3AF  8A 46 47                mov    al,[bp+47h]
  11698. F000:C3B2  B4 00                mov    ah,0
  11699. F000:C3B4  E8 001E                call    sub_170            ; (C3D5)
  11700. F000:C3B7  8B 46 48                mov    ax,[bp+48h]
  11701. F000:C3BA  40                    inc    ax
  11702. F000:C3BB  75 10                jnz    short loc_971        ; Jump if not zero
  11703. F000:C3BD  B4 02                mov    ah,2
  11704. F000:C3BF  CD 10                int    10h            ; Video display   ah=functn 02h
  11705.                                         ;  set cursor location in dx
  11706. F000:C3C1  B9 0005                mov    cx,5
  11707.   
  11708. F000:C3C4            locloop_970:                    ;  xref F000:C3C9
  11709. F000:C3C4  B8 0E3F                mov    ax,0E3Fh
  11710. F000:C3C7  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11711.                                         ;  write char al, teletype mode
  11712. F000:C3C9  E2 F9                loop    locloop_970        ; Loop if cx > 0
  11713.   
  11714. F000:C3CB  EB 04                jmp    short loc_972        ; (C3D1)
  11715. F000:C3CD            loc_971:                    ;  xref F000:C3BB
  11716. F000:C3CD  48                    dec    ax
  11717. F000:C3CE  E8 0004                call    sub_170            ; (C3D5)
  11718. F000:C3D1            loc_972:                    ;  xref F000:C3CB
  11719. F000:C3D1  E8 0332                call    sub_186            ; (C706)
  11720. F000:C3D4  C3                    retn
  11721.                 sub_168        endp
  11722.   
  11723.   
  11724.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11725.                 ;                   SUBROUTINE
  11726.                 ;
  11727.                 ;         Called from:     F000:C398, C3A0, C3A6, C3AC, C3B4, C3CE
  11728.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11729.   
  11730.                 sub_170        proc    near
  11731. F000:C3D5  52                    push    dx
  11732. F000:C3D6  50                    push    ax
  11733. F000:C3D7  B4 02                mov    ah,2
  11734. F000:C3D9  CD 10                int    10h            ; Video display   ah=functn 02h
  11735.                                         ;  set cursor location in dx
  11736. F000:C3DB  58                    pop    ax
  11737. F000:C3DC  E8 033B                call    sub_188            ; (C71A)
  11738. F000:C3DF  5A                    pop    dx
  11739. F000:C3E0  80 C2 06                add    dl,6
  11740. F000:C3E3  C3                    retn
  11741.                 sub_170        endp
  11742.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 200
  11743.  
  11744.   
  11745.   
  11746.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11747.                 ;                   SUBROUTINE
  11748.                 ;
  11749.                 ;         Called from:     F000:C298, C2B7
  11750.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11751.   
  11752.                 sub_171        proc    near
  11753. F000:C3E4  E8 0039                call    sub_173            ; (C420)
  11754. F000:C3E7  BE DB54                mov    si,0DB54h
  11755. F000:C3EA  E8 0275                call    sub_179            ; (C662)
  11756. F000:C3ED  8B 76 06                mov    si,[bp+6]
  11757. F000:C3F0  8B 42 1B                mov    ax,[bp+si+1Bh]
  11758. F000:C3F3  89 46 40                mov    [bp+40h],ax
  11759. F000:C3F6  8A 42 1D                mov    al,[bp+si+1Dh]
  11760. F000:C3F9  88 46 42                mov    [bp+42h],al
  11761. F000:C3FC  8B 42 1E                mov    ax,[bp+si+1Eh]
  11762. F000:C3FF  89 46 43                mov    [bp+43h],ax
  11763. F000:C402  8B 42 21                mov    ax,[bp+si+21h]
  11764. F000:C405  89 46 45                mov    [bp+45h],ax
  11765. F000:C408  8A 42 23                mov    al,[bp+si+23h]
  11766. F000:C40B  88 46 47                mov    [bp+47h],al
  11767. F000:C40E  E8 FF51                call    sub_169            ; (C362)
  11768. F000:C411  C3                    retn
  11769.                 sub_171        endp
  11770.   
  11771.   
  11772.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11773.                 ;                   SUBROUTINE
  11774.                 ;
  11775.                 ;         Called from:     F000:C2D9, C300
  11776.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11777.   
  11778.                 sub_172        proc    near
  11779. F000:C412  BE DA46                mov    si,0DA46h
  11780. F000:C415  BA 0727                mov    dx,727h
  11781. F000:C418  E8 0247                call    sub_179            ; (C662)
  11782. F000:C41B  BB 0070                mov    bx,70h
  11783. F000:C41E  EB 0C                jmp    short loc_973        ; (C42C)
  11784.   
  11785.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11786.                 ;
  11787.                 ;         Called from:     F000:C2F0, C349, C3E4
  11788.   
  11789.                 sub_173:
  11790. F000:C420  BE DA46                mov    si,0DA46h
  11791. F000:C423  BA 0727                mov    dx,727h
  11792. F000:C426  E8 0246                call    sub_181            ; (C66F)
  11793. F000:C429  BB 0007                mov    bx,7
  11794. F000:C42C            loc_973:                    ;  xref F000:C41E
  11795. F000:C42C  8B 56 04                mov    dx,[bp+4]
  11796. F000:C42F  B4 02                mov    ah,2
  11797. F000:C431  CD 10                int    10h            ; Video display   ah=functn 02h
  11798.                                         ;  set cursor location in dx
  11799. F000:C433  B9 0038                mov    cx,38h
  11800. F000:C436  B8 0920                mov    ax,920h
  11801.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 201
  11802.  
  11803. F000:C439  CD 10                int    10h            ; Video display   ah=functn 09h
  11804.                                         ;  set char al & attrib bl @curs
  11805. F000:C43B  C3                    retn
  11806.                 sub_172        endp
  11807.   
  11808.   
  11809.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11810.                 ;                   SUBROUTINE
  11811.                 ;
  11812.                 ;         Called from:     F000:BEC7, BEE4
  11813.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11814.   
  11815.                 sub_174        proc    near
  11816. F000:C43C  24 0F                and    al,0Fh
  11817. F000:C43E  BE C804                mov    si,0C804h
  11818. F000:C441  E8 0398                call    sub_198            ; (C7DC)
  11819. F000:C444  E8 0228                call    sub_181            ; (C66F)
  11820. F000:C447  C3                    retn
  11821.                 sub_174        endp
  11822.   
  11823. F000:C448  24 0F BE 0E C8 E8            db    24h, 0Fh, 0BEh, 0Eh, 0C8h, 0E8h
  11824. F000:C44E  8C 03 8B DE BE 82            db    8Ch, 3, 8Bh, 0DEh, 0BEh, 82h
  11825. F000:C454  DC E8 01 00 C3            db    0DCh, 0E8h, 1, 0, 0C3h
  11826.   
  11827.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11828.                 ;                   SUBROUTINE
  11829.                 ;
  11830.                 ;         Called from:     F000:C119
  11831.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11832.   
  11833.                 sub_175        proc    near
  11834. F000:C459  E8 0029                call    sub_176            ; (C485)
  11835. F000:C45C            loc_974:                    ;  xref F000:C47C
  11836. F000:C45C  83 C3 04                add    bx,4
  11837. F000:C45F            loc_975:                    ;  xref F000:C47E
  11838. F000:C45F  2E: 8B 07                mov    ax,cs:[bx]
  11839. F000:C462  89 46 02                mov    [bp+2],ax
  11840. F000:C465  2E: 8B 47 02                mov    ax,cs:[bx+2]
  11841. F000:C469  FF D0                call    ax            ;*
  11842. F000:C46B  9C                    pushf                ; Push flags
  11843. F000:C46C  73 12                jnc    short loc_976        ; Jump if carry=0
  11844. F000:C46E  74 10                jz    short loc_976        ; Jump if zero
  11845. F000:C470  80 FC 01                cmp    ah,1
  11846. F000:C473  74 0B                je    short loc_976        ; Jump if equal
  11847. F000:C475  9D                    popf                ; Pop flags
  11848. F000:C476  8B 5E 02                mov    bx,[bp+2]
  11849. F000:C479  80 FC 51                cmp    ah,51h            ; 'Q'
  11850. F000:C47C  74 DE                je    loc_974            ; Jump if equal
  11851. F000:C47E  EB DF                jmp    short loc_975        ; (C45F)
  11852. F000:C480            loc_976:                    ;  xref F000:C46C, C46E, C473
  11853. F000:C480  E8 000D                call    sub_177            ; (C490)
  11854. F000:C483  9D                    popf                ; Pop flags
  11855. F000:C484  C3                    retn
  11856.                 sub_175        endp
  11857.   
  11858.   
  11859.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11860.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 202
  11861.  
  11862.                 ;                   SUBROUTINE
  11863.                 ;
  11864.                 ;         Called from:     F000:C248, C459, D48F
  11865.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11866.   
  11867.                 sub_176        proc    near
  11868. F000:C485  50                    push    ax
  11869. F000:C486  52                    push    dx
  11870. F000:C487  BA 1301                mov    dx,1301h
  11871. F000:C48A  E8 01D5                call    sub_179            ; (C662)
  11872. F000:C48D  5A                    pop    dx
  11873. F000:C48E  58                    pop    ax
  11874. F000:C48F  C3                    retn
  11875.                 sub_176        endp
  11876.   
  11877.   
  11878.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  11879.                 ;                   SUBROUTINE
  11880.                 ;
  11881.                 ;         Called from:     F000:BE26, BFFF, C280, C480, D49C
  11882.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  11883.   
  11884.                 sub_177        proc    near
  11885. F000:C490  50                    push    ax
  11886. F000:C491  53                    push    bx
  11887. F000:C492  51                    push    cx
  11888. F000:C493  52                    push    dx
  11889. F000:C494  BA 1301                mov    dx,1301h
  11890. F000:C497  BB 0070                mov    bx,70h
  11891. F000:C49A            loc_977:                    ;  xref F000:C4AB
  11892. F000:C49A  B4 02                mov    ah,2
  11893. F000:C49C  CD 10                int    10h            ; Video display   ah=functn 02h
  11894.                                         ;  set cursor location in dx
  11895. F000:C49E  B9 0031                mov    cx,31h
  11896. F000:C4A1  B8 0920                mov    ax,920h
  11897. F000:C4A4  CD 10                int    10h            ; Video display   ah=functn 09h
  11898.                                         ;  set char al & attrib bl @curs
  11899. F000:C4A6  FE C6                inc    dh
  11900. F000:C4A8  80 FE 16                cmp    dh,16h
  11901. F000:C4AB  75 ED                jne    loc_977            ; Jump if not equal
  11902. F000:C4AD  5A                    pop    dx
  11903. F000:C4AE  59                    pop    cx
  11904. F000:C4AF  5B                    pop    bx
  11905. F000:C4B0  58                    pop    ax
  11906. F000:C4B1  C3                    retn
  11907.                 sub_177        endp
  11908.   
  11909. F000:C4B2  BE CC DA E9 75 FC            db    0BEh, 0CCh, 0DAh, 0E9h, 75h, 0FCh
  11910. F000:C4B8  BE DD DA E9 6F FC            db    0BEh, 0DDh, 0DAh, 0E9h, 6Fh, 0FCh
  11911. F000:C4BE  BE EE DA E9 69 FC            db    0BEh, 0EEh, 0DAh, 0E9h, 69h, 0FCh
  11912. F000:C4C4  BE FF DA E9 63 FC            db    0BEh, 0FFh, 0DAh, 0E9h, 63h, 0FCh
  11913. F000:C4CA  BE 43 DB E9 5D FC            db    0BEh, 43h, 0DBh, 0E9h, 5Dh, 0FCh
  11914. F000:C4D0  BE 32 DB E9 57 FC            db    0BEh, 32h, 0DBh, 0E9h, 57h, 0FCh
  11915. F000:C4D6  BE 21 DB E9 51 FC            db    0BEh, 21h, 0DBh, 0E9h, 51h, 0FCh
  11916. F000:C4DC  BE 10 DB E9 4B FC            db    0BEh, 10h, 0DBh, 0E9h, 4Bh, 0FCh
  11917. F000:C4E2  BE 6E DA E9 45 FC            db    0BEh, 6Eh, 0DAh, 0E9h, 45h, 0FCh
  11918. F000:C4E8  BE 7F DA E9 3F FC            db    0BEh, 7Fh, 0DAh, 0E9h, 3Fh, 0FCh
  11919.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 203
  11920.  
  11921. F000:C4EE  BA 12 00 BE 05 00            db    0BAh, 12h, 0, 0BEh, 5, 0
  11922. F000:C4F4  E8 70 00 E3 06 8B            db    0E8h, 70h, 0, 0E3h, 6, 8Bh
  11923. F000:C4FA  76 06 89 52 1B 9C            db    76h, 6, 89h, 52h, 1Bh, 9Ch
  11924. F000:C500  80 FC 4B 75 02 B4            db    80h, 0FCh, 4Bh, 75h, 2, 0B4h
  11925. F000:C506  48                    db    48h
  11926. F000:C507            loc_978:
  11927. F000:C507  9D                    popf                ; Pop flags
  11928. F000:C508  C3                    retn
  11929. F000:C509  BA 18 00 BE 03 00            db    0BAh, 18h, 0, 0BEh, 3, 0
  11930. F000:C50F  E8 55 00 E3 52 8B            db    0E8h, 55h, 0, 0E3h, 52h, 8Bh
  11931. F000:C515  76 06 88 52 1D 80            db    76h, 6, 88h, 52h, 1Dh, 80h
  11932. F000:C51B  FA 08 C6 42 20 00            db    0FAh, 8, 0C6h, 42h, 20h, 0
  11933. F000:C521  76 43 C6 42 20 08            db    76h, 43h, 0C6h, 42h, 20h, 8
  11934. F000:C527  C3 BA 1E 00 BE 05            db    0C3h, 0BAh, 1Eh, 0, 0BEh, 5
  11935. F000:C52D  00 E8 36 00 E3 33            db    0, 0E8h, 36h, 0, 0E3h, 33h
  11936. F000:C533  8B 76 06 89 52 1E            db    8Bh, 76h, 6, 89h, 52h, 1Eh
  11937. F000:C539  C3 BA 24 00 BE 05            db    0C3h, 0BAh, 24h, 0, 0BEh, 5
  11938. F000:C53F  00 E8 24 00 E3 21            db    0, 0E8h, 24h, 0, 0E3h, 21h
  11939. F000:C545  8B 76 06 89 52 21            db    8Bh, 76h, 6, 89h, 52h, 21h
  11940. F000:C54B  C3 BA 2A 00 BE 03            db    0C3h, 0BAh, 2Ah, 0, 0BEh, 3
  11941. F000:C551  00 E8 12 00 E3 06            db    0, 0E8h, 12h, 0, 0E3h, 6
  11942. F000:C557  8B 76 06 88 52 23            db    8Bh, 76h, 6, 88h, 52h, 23h
  11943. F000:C55D  9C 80 FC 4D 75 02            db    9Ch, 80h, 0FCh, 4Dh, 75h, 2
  11944. F000:C563  B4                    db    0B4h
  11945. F000:C564  50                    db    50h
  11946. F000:C565            loc_979:
  11947. F000:C565  9D                    popf                ; Pop flags
  11948. F000:C566  C3                    retn
  11949. F000:C567  03 56 04 8B CE 52            db    3, 56h, 4, 8Bh, 0CEh, 52h
  11950. F000:C56D  4A 41 41 51 52 B6            db    4Ah, 41h, 41h, 51h, 52h, 0B6h
  11951. F000:C573  07 BB 70 00 E8 28            db    7, 0BBh, 70h, 0, 0E8h, 28h
  11952. F000:C579  0F 5A 59 B3 F0 E8            db    0Fh, 5Ah, 59h, 0B3h, 0F0h, 0E8h
  11953. F000:C57F  21 0F B4 03 CD 10            db    21h, 0Fh, 0B4h, 3, 0CDh, 10h
  11954. F000:C585  5A 51 B4 01 80 E5            db    5Ah, 51h, 0B4h, 1, 80h, 0E5h
  11955. F000:C58B  9F CD 10                db    9Fh, 0CDh, 10h
  11956. F000:C58E            loc_980:                    ;  xref F000:C600, C60D, C619
  11957. F000:C58E  52                    push    dx
  11958. F000:C58F  B4 02                mov    ah,2
  11959. F000:C591  CD 10                int    10h            ; Video display   ah=functn 02h
  11960.                                         ;  set cursor location in dx
  11961. F000:C593  33 FF                xor    di,di            ; Zero register
  11962. F000:C595            loc_981:                    ;  xref F000:C5A0, C5AA, C5B1, C5E2
  11963. F000:C595  B4 00                mov    ah,0
  11964. F000:C597  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  11965.                                         ;  get keybd char in al, ah=scan
  11966. F000:C599  80 FC 0E                cmp    ah,0Eh
  11967. F000:C59C  75 15                jne    short loc_983        ; Jump if not equal
  11968. F000:C59E  0B FF                or    di,di            ; Zero ?
  11969. F000:C5A0  74 F3                jz    loc_981            ; Jump if zero
  11970. F000:C5A2  4F                    dec    di
  11971. F000:C5A3  B9 0001                mov    cx,1
  11972. F000:C5A6            loc_982:                    ;  xref F000:C5F8
  11973. F000:C5A6  B4 0E                mov    ah,0Eh
  11974. F000:C5A8  CD 10                int    10h            ; Video display   ah=functn 0Eh
  11975.                                         ;  write char al, teletype mode
  11976. F000:C5AA  E3 E9                jcxz    loc_981            ; Jump if cx=0
  11977. F000:C5AC  B8 0920                mov    ax,920h
  11978.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 204
  11979.  
  11980. F000:C5AF  CD 10                int    10h            ; Video display   ah=functn 09h
  11981.                                         ;  set char al & attrib bl @curs
  11982. F000:C5B1  EB E2                jmp    short loc_981        ; (C595)
  11983. F000:C5B3            loc_983:                    ;  xref F000:C59C
  11984. F000:C5B3  80 FC 4D                cmp    ah,4Dh            ; 'M'
  11985. F000:C5B6  74 4F                je    short loc_988        ; Jump if equal
  11986. F000:C5B8  80 FC 50                cmp    ah,50h            ; 'P'
  11987. F000:C5BB  74 4A                je    short loc_988        ; Jump if equal
  11988. F000:C5BD  80 FC 4B                cmp    ah,4Bh            ; 'K'
  11989. F000:C5C0  74 38                je    short loc_986        ; Jump if equal
  11990. F000:C5C2  80 FC 48                cmp    ah,48h            ; 'H'
  11991. F000:C5C5  74 33                je    short loc_986        ; Jump if equal
  11992. F000:C5C7  80 FC 49                cmp    ah,49h            ; 'I'
  11993. F000:C5CA  74 47                je    short loc_990        ; Jump if equal
  11994. F000:C5CC  80 FC 51                cmp    ah,51h            ; 'Q'
  11995. F000:C5CF  74 42                je    short loc_990        ; Jump if equal
  11996. F000:C5D1  80 FC 01                cmp    ah,1
  11997. F000:C5D4  74 3D                je    short loc_990        ; Jump if equal
  11998. F000:C5D6  80 FC 1C                cmp    ah,1Ch
  11999. F000:C5D9  75 09                jne    short loc_985        ; Jump if not equal
  12000. F000:C5DB  B4 4D                mov    ah,4Dh            ; 'M'
  12001. F000:C5DD  EB 28                jmp    short loc_988        ; (C607)
  12002. F000:C5DF            loc_984:                    ;  xref F000:C5E6, C5EA, C5EE
  12003. F000:C5DF  E8 01D3                call    sub_197            ; (C7B5)
  12004. F000:C5E2  EB B1                jmp    short loc_981        ; (C595)
  12005. F000:C5E4            loc_985:                    ;  xref F000:C5D9
  12006. F000:C5E4  3C 30                cmp    al,30h            ; '0'
  12007. F000:C5E6  72 F7                jb    loc_984            ; Jump if below
  12008. F000:C5E8  3C 39                cmp    al,39h            ; '9'
  12009. F000:C5EA  77 F3                ja    loc_984            ; Jump if above
  12010. F000:C5EC  3B F7                cmp    si,di
  12011. F000:C5EE  74 EF                je    loc_984            ; Jump if equal
  12012. F000:C5F0  88 43 0A                mov    [bp+di+0Ah],al
  12013. F000:C5F3  47                    inc    di
  12014. F000:C5F4  8B CE                mov    cx,si
  12015. F000:C5F6  2B CF                sub    cx,di
  12016. F000:C5F8  EB AC                jmp    short loc_982        ; (C5A6)
  12017. F000:C5FA            loc_986:                    ;  xref F000:C5C0, C5C5
  12018. F000:C5FA  E8 002F                call    sub_178            ; (C62C)
  12019. F000:C5FD  E3 03                jcxz    short loc_987        ; Jump if cx=0
  12020. F000:C5FF  5A                    pop    dx
  12021. F000:C600  EB 8C                jmp    short loc_980        ; (C58E)
  12022. F000:C602            loc_987:                    ;  xref F000:C5FD
  12023. F000:C602  3B E4                cmp    sp,sp
  12024. F000:C604  F9                    stc                ; Set carry flag
  12025. F000:C605  EB 18                jmp    short loc_992        ; (C61F)
  12026. F000:C607            loc_988:                    ;  xref F000:C5B6, C5BB, C5DD
  12027. F000:C607  E8 0022                call    sub_178            ; (C62C)
  12028. F000:C60A  E3 04                jcxz    short loc_989        ; Jump if cx=0
  12029. F000:C60C  5A                    pop    dx
  12030. F000:C60D  E9 FF7E                jmp    loc_980            ; (C58E)
  12031. F000:C610            loc_989:                    ;  xref F000:C60A
  12032. F000:C610  F8                    clc                ; Clear carry flag
  12033. F000:C611  EB 0C                jmp    short loc_992        ; (C61F)
  12034. F000:C613            loc_990:                    ;  xref F000:C5CA, C5CF, C5D4
  12035. F000:C613  E8 0016                call    sub_178            ; (C62C)
  12036. F000:C616  E3 04                jcxz    short loc_991        ; Jump if cx=0
  12037.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 205
  12038.  
  12039. F000:C618  5A                    pop    dx
  12040. F000:C619  E9 FF72                jmp    loc_980            ; (C58E)
  12041. F000:C61C            loc_991:                    ;  xref F000:C616
  12042. F000:C61C  0B E4                or    sp,sp            ; Zero ?
  12043. F000:C61E  F9                    stc                ; Set carry flag
  12044. F000:C61F            loc_992:                    ;  xref F000:C605, C611
  12045. F000:C61F  59                    pop    cx
  12046. F000:C620  59                    pop    cx
  12047. F000:C621  50                    push    ax
  12048. F000:C622  9C                    pushf                ; Push flags
  12049. F000:C623  B4 01                mov    ah,1
  12050. F000:C625  CD 10                int    10h            ; Video display   ah=functn 01h
  12051.                                         ;  set cursor mode in cx
  12052. F000:C627  9D                    popf                ; Pop flags
  12053. F000:C628  58                    pop    ax
  12054. F000:C629  8B CF                mov    cx,di
  12055. F000:C62B  C3                    retn
  12056.   
  12057.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12058.                 ;                   SUBROUTINE
  12059.                 ;
  12060.                 ;         Called from:     F000:C5FA, C607, C613
  12061.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12062.   
  12063.                 sub_178        proc    near
  12064. F000:C62C  50                    push    ax
  12065. F000:C62D  56                    push    si
  12066. F000:C62E  8B CF                mov    cx,di
  12067. F000:C630  E3 2D                jcxz    short loc_995        ; Jump if cx=0
  12068. F000:C632  33 F6                xor    si,si            ; Zero register
  12069. F000:C634  33 C0                xor    ax,ax            ; Zero register
  12070.   
  12071. F000:C636            locloop_993:                    ;  xref F000:C64A
  12072. F000:C636  BA 000A                mov    dx,0Ah
  12073. F000:C639  F7 E2                mul    dx            ; dx:ax = reg * ax
  12074. F000:C63B  70 1D                jo    short loc_994        ; Jump if overflow=1
  12075. F000:C63D  8A 52 0A                mov    dl,[bp+si+0Ah]
  12076. F000:C640  46                    inc    si
  12077. F000:C641  80 EA 30                sub    dl,30h            ; '0'
  12078. F000:C644  B6 00                mov    dh,0
  12079. F000:C646  03 C2                add    ax,dx
  12080. F000:C648  72 10                jc    short loc_994        ; Jump if carry Set
  12081. F000:C64A  E2 EA                loop    locloop_993        ; Loop if cx > 0
  12082.   
  12083. F000:C64C  8B D0                mov    dx,ax
  12084. F000:C64E  5E                    pop    si
  12085. F000:C64F  56                    push    si
  12086. F000:C650  83 FE 05                cmp    si,5
  12087. F000:C653  74 0A                je    short loc_995        ; Jump if equal
  12088. F000:C655  3D 00FF                cmp    ax,0FFh
  12089. F000:C658  76 05                jbe    short loc_995        ; Jump if below or =
  12090. F000:C65A            loc_994:                    ;  xref F000:C63B, C648
  12091. F000:C65A  E8 0158                call    sub_197            ; (C7B5)
  12092. F000:C65D  8B CF                mov    cx,di
  12093. F000:C65F            loc_995:                    ;  xref F000:C630, C653, C658
  12094. F000:C65F  5E                    pop    si
  12095. F000:C660  58                    pop    ax
  12096.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 206
  12097.  
  12098. F000:C661  C3                    retn
  12099.                 sub_178        endp
  12100.   
  12101.   
  12102.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12103.                 ;                   SUBROUTINE
  12104.                 ;
  12105.                 ;         Called from:     F000:C2E2, C3EA, C418, C48A
  12106.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12107.   
  12108.                 sub_179        proc    near
  12109. F000:C662  53                    push    bx
  12110. F000:C663  BB 0070                mov    bx,70h
  12111. F000:C666  52                    push    dx
  12112. F000:C667  EB 19                jmp    short loc_997        ; (C682)
  12113.   
  12114.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12115.   
  12116.                 sub_180:
  12117. F000:C669  53                    push    bx
  12118. F000:C66A  BB 0070                mov    bx,70h
  12119. F000:C66D  EB 0B                jmp    short loc_996        ; (C67A)
  12120.   
  12121.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12122.                 ;
  12123.                 ;         Called from:     F000:BEA3, BF60, BF72, BF87, BF99, BFE2, C2D0
  12124.                 ;                  C2FA, C426, C444, C77A, D167, D170, D179
  12125.                 ;                  D186, D190, D19D
  12126.   
  12127.                 sub_181:
  12128. F000:C66F  53                    push    bx
  12129. F000:C670  BB 0007                mov    bx,7
  12130. F000:C673  52                    push    dx
  12131. F000:C674  EB 0C                jmp    short loc_997        ; (C682)
  12132.   
  12133.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12134.                 ;
  12135.                 ;         Called from:     F000:BD4D, BD53, BD59, BDC8
  12136.   
  12137.                 sub_182:
  12138. F000:C676  53                    push    bx
  12139. F000:C677  BB 0007                mov    bx,7
  12140. F000:C67A            loc_996:                    ;  xref F000:C66D
  12141. F000:C67A  52                    push    dx
  12142. F000:C67B  2E: 8B 14                mov    dx,cs:[si]
  12143. F000:C67E  86 D6                xchg    dl,dh
  12144. F000:C680  46                    inc    si
  12145. F000:C681  46                    inc    si
  12146. F000:C682            loc_997:                    ;  xref F000:C667, C674
  12147. F000:C682  51                    push    cx
  12148. F000:C683  50                    push    ax
  12149. F000:C684            loc_998:                    ;  xref F000:C696, C69E, C6A6, C6B1
  12150. F000:C684  B4 02                mov    ah,2
  12151. F000:C686  CD 10                int    10h            ; Video display   ah=functn 02h
  12152.                                         ;  set cursor location in dx
  12153. F000:C688  2E: 8A 04                mov    al,cs:[si]
  12154. F000:C68B  46                    inc    si
  12155.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 207
  12156.  
  12157. F000:C68C  0A C0                or    al,al            ; Zero ?
  12158. F000:C68E  74 23                jz    short loc_1002        ; Jump if zero
  12159. F000:C690  3C 0D                cmp    al,0Dh
  12160. F000:C692  75 04                jne    short loc_999        ; Jump if not equal
  12161. F000:C694  B2 01                mov    dl,1
  12162. F000:C696  EB EC                jmp    short loc_998        ; (C684)
  12163. F000:C698            loc_999:                    ;  xref F000:C692
  12164. F000:C698  3C 0A                cmp    al,0Ah
  12165. F000:C69A  75 04                jne    short loc_1000        ; Jump if not equal
  12166. F000:C69C  FE C6                inc    dh
  12167. F000:C69E  EB E4                jmp    short loc_998        ; (C684)
  12168. F000:C6A0            loc_1000:                    ;  xref F000:C69A
  12169. F000:C6A0  3C 08                cmp    al,8
  12170. F000:C6A2  75 04                jne    short loc_1001        ; Jump if not equal
  12171. F000:C6A4  FE CA                dec    dl
  12172. F000:C6A6  EB DC                jmp    short loc_998        ; (C684)
  12173. F000:C6A8            loc_1001:                    ;  xref F000:C6A2
  12174. F000:C6A8  B4 09                mov    ah,9
  12175. F000:C6AA  B9 0001                mov    cx,1
  12176. F000:C6AD  CD 10                int    10h            ; Video display   ah=functn 09h
  12177.                                         ;  set char al & attrib bl @curs
  12178. F000:C6AF  FE C2                inc    dl
  12179. F000:C6B1  EB D1                jmp    short loc_998        ; (C684)
  12180. F000:C6B3            loc_1002:                    ;  xref F000:C68E
  12181. F000:C6B3  58                    pop    ax
  12182. F000:C6B4  59                    pop    cx
  12183. F000:C6B5  5A                    pop    dx
  12184. F000:C6B6  5B                    pop    bx
  12185. F000:C6B7  C3                    retn
  12186.                 sub_179        endp
  12187.   
  12188.   
  12189.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12190.                 ;                   SUBROUTINE
  12191.                 ;
  12192.                 ;         Called from:     F000:C2EB, C344, D498
  12193.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12194.   
  12195.                 sub_183        proc    near
  12196. F000:C6B8  53                    push    bx
  12197. F000:C6B9  51                    push    cx
  12198. F000:C6BA  BB 4951                mov    bx,4951h
  12199. F000:C6BD  B9 0101                mov    cx,101h
  12200. F000:C6C0  EB 08                jmp    short loc_1003        ; (C6CA)
  12201.   
  12202.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12203.   
  12204.                 sub_184:
  12205. F000:C6C2  53                    push    bx
  12206. F000:C6C3  51                    push    cx
  12207. F000:C6C4  BB 1C1C                mov    bx,1C1Ch
  12208. F000:C6C7  B9 1C1C                mov    cx,1C1Ch
  12209. F000:C6CA            loc_1003:                    ;  xref F000:C6C0, C6F5
  12210. F000:C6CA  B4 00                mov    ah,0
  12211. F000:C6CC  CD 16                int    16h            ; Keyboard i/o  ah=function 00h
  12212.                                         ;  get keybd char in al, ah=scan
  12213. F000:C6CE  80 FC 4D                cmp    ah,4Dh            ; 'M'
  12214.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 208
  12215.  
  12216. F000:C6D1  74 2B                je    short loc_1006        ; Jump if equal
  12217. F000:C6D3  80 FC 50                cmp    ah,50h            ; 'P'
  12218. F000:C6D6  74 26                je    short loc_1006        ; Jump if equal
  12219. F000:C6D8  80 FC 4B                cmp    ah,4Bh            ; 'K'
  12220. F000:C6DB  74 20                je    short loc_1005        ; Jump if equal
  12221. F000:C6DD  80 FC 48                cmp    ah,48h            ; 'H'
  12222. F000:C6E0  74 1B                je    short loc_1005        ; Jump if equal
  12223. F000:C6E2  3A E7                cmp    ah,bh
  12224. F000:C6E4  74 15                je    short loc_1004        ; Jump if equal
  12225. F000:C6E6  3A E3                cmp    ah,bl
  12226. F000:C6E8  74 11                je    short loc_1004        ; Jump if equal
  12227. F000:C6EA  3A E5                cmp    ah,ch
  12228. F000:C6EC  74 0D                je    short loc_1004        ; Jump if equal
  12229. F000:C6EE  3A E1                cmp    ah,cl
  12230. F000:C6F0  74 09                je    short loc_1004        ; Jump if equal
  12231. F000:C6F2  80 FC 1C                cmp    ah,1Ch
  12232. F000:C6F5  75 D3                jne    loc_1003        ; Jump if not equal
  12233. F000:C6F7  B4 4D                mov    ah,4Dh            ; 'M'
  12234. F000:C6F9  EB 03                jmp    short loc_1006        ; (C6FE)
  12235. F000:C6FB            loc_1004:                    ;  xref F000:C6E4, C6E8, C6EC, C6F0
  12236. F000:C6FB  0B E4                or    sp,sp            ; Zero ?
  12237. F000:C6FD            loc_1005:                    ;  xref F000:C6DB, C6E0
  12238. F000:C6FD  F9                    stc                ; Set carry flag
  12239. F000:C6FE            loc_1006:                    ;  xref F000:C6D1, C6D6, C6F9
  12240. F000:C6FE  59                    pop    cx
  12241. F000:C6FF  5B                    pop    bx
  12242. F000:C700  C3                    retn
  12243.                 sub_183        endp
  12244.   
  12245.   
  12246.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12247.                 ;                   SUBROUTINE
  12248.                 ;
  12249.                 ;         Called from:     F000:C790
  12250.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12251.   
  12252.                 sub_185        proc    near
  12253. F000:C701  B8 0E4B                mov    ax,0E4Bh
  12254. F000:C704  EB 03                jmp    short loc_1007        ; (C709)
  12255.   
  12256.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12257.                 ;
  12258.                 ;         Called from:     F000:C3D1
  12259.   
  12260.                 sub_186:
  12261. F000:C706  B8 0E4D                mov    ax,0E4Dh
  12262. F000:C709            loc_1007:                    ;  xref F000:C704
  12263. F000:C709  50                    push    ax
  12264. F000:C70A  B8 0E20                mov    ax,0E20h
  12265. F000:C70D  CD 10                int    10h            ; Video display   ah=functn 0Eh
  12266.                                         ;  write char al, teletype mode
  12267. F000:C70F  58                    pop    ax
  12268. F000:C710  CD 10                int    10h            ; Video display   ah=functn 0Eh
  12269.                                         ;  write char al, teletype mode
  12270. F000:C712  B8 0E42                mov    ax,0E42h
  12271. F000:C715  CD 10                int    10h            ; Video display   ah=functn 0Eh
  12272.                                         ;  write char al, teletype mode
  12273.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 209
  12274.  
  12275. F000:C717  C3                    retn
  12276.                 sub_185        endp
  12277.   
  12278.   
  12279.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12280.                 ;                   SUBROUTINE
  12281.                 ;
  12282.                 ;         Called from:     F000:C354
  12283.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12284.   
  12285.                 sub_187        proc    near
  12286. F000:C718  B4 00                mov    ah,0
  12287.   
  12288.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12289.                 ;
  12290.                 ;         Called from:     F000:C30A, C3DC, C78D
  12291.   
  12292.                 sub_188:
  12293. F000:C71A  B9 000A                mov    cx,0Ah
  12294.   
  12295.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12296.                 ;
  12297.                 ;         Called from:     F000:C726
  12298.   
  12299.                 sub_189:
  12300. F000:C71D  33 D2                xor    dx,dx            ; Zero register
  12301. F000:C71F  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  12302. F000:C721  0B C0                or    ax,ax            ; Zero ?
  12303. F000:C723  74 05                jz    short loc_1008        ; Jump if zero
  12304. F000:C725  52                    push    dx
  12305. F000:C726  E8 FFF4                call    sub_189            ; (C71D)
  12306. F000:C729  5A                    pop    dx
  12307. F000:C72A            loc_1008:                    ;  xref F000:C723
  12308. F000:C72A  8B C2                mov    ax,dx
  12309. F000:C72C  0D 0E30                or    ax,0E30h
  12310. F000:C72F  CD 10                int    10h            ; Video display   ah=functn 0Eh
  12311.                                         ;  write char al, teletype mode
  12312. F000:C731  C3                    retn
  12313.                 sub_187        endp
  12314.   
  12315.   
  12316.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12317.                 ;                   SUBROUTINE
  12318.                 ;
  12319.                 ;         Called from:     F000:BDCD, BDD2
  12320.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12321.   
  12322.                 sub_190        proc    near
  12323. F000:C732  B6 01                mov    dh,1
  12324. F000:C734            loc_1009:                    ;  xref F000:C742
  12325. F000:C734  B4 02                mov    ah,2
  12326. F000:C736  CD 10                int    10h            ; Video display   ah=functn 02h
  12327.                                         ;  set cursor location in dx
  12328. F000:C738  B8 0EBA                mov    ax,0EBAh
  12329. F000:C73B  CD 10                int    10h            ; Video display   ah=functn 0Eh
  12330.                                         ;  write char al, teletype mode
  12331. F000:C73D  FE C6                inc    dh
  12332.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 210
  12333.  
  12334. F000:C73F  80 FE 18                cmp    dh,18h
  12335. F000:C742  75 F0                jne    loc_1009        ; Jump if not equal
  12336. F000:C744  C3                    retn
  12337.                 sub_190        endp
  12338.   
  12339.   
  12340.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12341.                 ;                   SUBROUTINE
  12342.                 ;
  12343.                 ;         Called from:     F000:BDD7, BDE9, BDF3
  12344.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12345.   
  12346.                 sub_191        proc    near
  12347. F000:C745  B2 00                mov    dl,0
  12348. F000:C747  B4 02                mov    ah,2
  12349. F000:C749  CD 10                int    10h            ; Video display   ah=functn 02h
  12350.                                         ;  set cursor location in dx
  12351. F000:C74B  B8 09CD                mov    ax,9CDh
  12352. F000:C74E  B9 004F                mov    cx,4Fh
  12353. F000:C751  CD 10                int    10h            ; Video display   ah=functn 09h
  12354.                                         ;  set char al & attrib bl @curs
  12355. F000:C753  C3                    retn
  12356.                 sub_191        endp
  12357.   
  12358.   
  12359.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12360.                 ;                   SUBROUTINE
  12361.                 ;
  12362.                 ;         Called from:     F000:BE2B, BE30
  12363.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12364.   
  12365.                 sub_192        proc    near
  12366. F000:C754  B2 00                mov    dl,0
  12367. F000:C756  B0 C7                mov    al,0C7h
  12368. F000:C758  E8 003A                call    sub_195            ; (C795)
  12369. F000:C75B  B8 09C4                mov    ax,9C4h
  12370. F000:C75E  B9 0031                mov    cx,31h
  12371. F000:C761  CD 10                int    10h            ; Video display   ah=functn 09h
  12372.                                         ;  set char al & attrib bl @curs
  12373. F000:C763  B2 32                mov    dl,32h            ; '2'
  12374. F000:C765  B0 D7                mov    al,0D7h
  12375. F000:C767  E8 002B                call    sub_195            ; (C795)
  12376. F000:C76A  C3                    retn
  12377.                 sub_192        endp
  12378.   
  12379.   
  12380.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12381.                 ;                   SUBROUTINE
  12382.                 ;
  12383.                 ;         Called from:     F000:BF75
  12384.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12385.   
  12386.                 sub_193        proc    near
  12387. F000:C76B  F6 46 38 20                test    byte ptr [bp+38h],20h    ; ' '
  12388. F000:C76F  BE DA9C                mov    si,0DA9Ch
  12389. F000:C772  74 03                jz    short loc_1010        ; Jump if zero
  12390. F000:C774  BE DA90                mov    si,0DA90h
  12391.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 211
  12392.  
  12393. F000:C777            loc_1010:                    ;  xref F000:C772
  12394. F000:C777  BA 0C16                mov    dx,0C16h
  12395. F000:C77A  E8 FEF2                call    sub_181            ; (C66F)
  12396. F000:C77D  C3                    retn
  12397.                 sub_193        endp
  12398.   
  12399.   
  12400.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12401.                 ;                   SUBROUTINE
  12402.                 ;
  12403.                 ;         Called from:     F000:BE5B, BE68
  12404.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12405.   
  12406.                 sub_194        proc    near
  12407. F000:C77E  51                    push    cx
  12408. F000:C77F  50                    push    ax
  12409. F000:C780  B4 02                mov    ah,2
  12410. F000:C782  CD 10                int    10h            ; Video display   ah=functn 02h
  12411.                                         ;  set cursor location in dx
  12412. F000:C784  B9 000C                mov    cx,0Ch
  12413. F000:C787  B8 0920                mov    ax,920h
  12414. F000:C78A  CD 10                int    10h            ; Video display   ah=functn 09h
  12415.                                         ;  set char al & attrib bl @curs
  12416. F000:C78C  58                    pop    ax
  12417. F000:C78D  E8 FF8A                call    sub_188            ; (C71A)
  12418. F000:C790  E8 FF6E                call    sub_185            ; (C701)
  12419. F000:C793  59                    pop    cx
  12420. F000:C794  C3                    retn
  12421.                 sub_194        endp
  12422.   
  12423.   
  12424.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12425.                 ;                   SUBROUTINE
  12426.                 ;
  12427.                 ;         Called from:     F000:BDE4, BE00, BE08, BE10, BE18, C758, C767
  12428.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12429.   
  12430.                 sub_195        proc    near
  12431. F000:C795  50                    push    ax
  12432. F000:C796  B4 02                mov    ah,2
  12433. F000:C798  CD 10                int    10h            ; Video display   ah=functn 02h
  12434.                                         ;  set cursor location in dx
  12435. F000:C79A  58                    pop    ax
  12436. F000:C79B  B4 0E                mov    ah,0Eh
  12437. F000:C79D  CD 10                int    10h            ; Video display   ah=functn 0Eh
  12438.                                         ;  write char al, teletype mode
  12439. F000:C79F  C3                    retn
  12440.                 sub_195        endp
  12441.   
  12442.   
  12443.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12444.                 ;                   SUBROUTINE
  12445.                 ;
  12446.                 ;         Called from:     F000:92DF, 9800
  12447.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12448.   
  12449.                 sub_196        proc    near
  12450.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 212
  12451.  
  12452. F000:C7A0  33 F6                xor    si,si            ; Zero register
  12453. F000:C7A2  2E: AD                lods word ptr cs:[si]        ; String [si] to ax
  12454. F000:C7A4  3D 55AA                cmp    ax,55AAh
  12455. F000:C7A7  75 0B                jne    short loc_ret_1012    ; Jump if not equal
  12456. F000:C7A9  B9 37FF                mov    cx,37FFh
  12457. F000:C7AC  8B F8                mov    di,ax
  12458.   
  12459. F000:C7AE            locloop_1011:                    ;  xref F000:C7B2
  12460. F000:C7AE  2E: AD                lods word ptr cs:[si]        ; String [si] to ax
  12461. F000:C7B0  33 F8                xor    di,ax
  12462. F000:C7B2  E2 FA                loop    locloop_1011        ; Loop if cx > 0
  12463.   
  12464.   
  12465. F000:C7B4            loc_ret_1012:                    ;  xref F000:C7A7
  12466. F000:C7B4  C3                    retn
  12467.                 sub_196        endp
  12468.   
  12469.   
  12470.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12471.                 ;                   SUBROUTINE
  12472.                 ;
  12473.                 ;         Called from:     F000:C5DF, C65A
  12474.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12475.   
  12476.                 sub_197        proc    near
  12477. F000:C7B5  53                    push    bx
  12478. F000:C7B6  BB 00D0                mov    bx,0D0h
  12479. F000:C7B9  B9 0030                mov    cx,30h
  12480. F000:C7BC  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  12481. F000:C7BE  8A E0                mov    ah,al
  12482. F000:C7C0  24 FE                and    al,0FEh
  12483.   
  12484. F000:C7C2            locloop_1013:                    ;  xref F000:C7D4
  12485. F000:C7C2  51                    push    cx
  12486. F000:C7C3  0C 02                or    al,2
  12487. F000:C7C5  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  12488. F000:C7C7  8B CB                mov    cx,bx
  12489.   
  12490. F000:C7C9            locloop_1014:                    ;  xref F000:C7C9
  12491. F000:C7C9  E2 FE                loop    locloop_1014        ; Loop if cx > 0
  12492.   
  12493. F000:C7CB  24 FD                and    al,0FDh
  12494. F000:C7CD  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  12495. F000:C7CF  8B CB                mov    cx,bx
  12496.   
  12497. F000:C7D1            locloop_1015:                    ;  xref F000:C7D1
  12498. F000:C7D1  E2 FE                loop    locloop_1015        ; Loop if cx > 0
  12499.   
  12500. F000:C7D3  59                    pop    cx
  12501. F000:C7D4  E2 EC                loop    locloop_1013        ; Loop if cx > 0
  12502.   
  12503. F000:C7D6  8A C4                mov    al,ah
  12504. F000:C7D8  E6 61                out    61h,al            ; port 61h, 8255 B - spkr, etc
  12505. F000:C7DA  5B                    pop    bx
  12506. F000:C7DB  C3                    retn
  12507.                 sub_197        endp
  12508.   
  12509.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 213
  12510.  
  12511.   
  12512.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  12513.                 ;                   SUBROUTINE
  12514.                 ;
  12515.                 ;         Called from:     F000:BE9D, BF5A, C441
  12516.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  12517.   
  12518.                 sub_198        proc    near
  12519. F000:C7DC  50                    push    ax
  12520. F000:C7DD  32 E4                xor    ah,ah            ; Zero register
  12521. F000:C7DF  D1 E0                shl    ax,1            ; Shift w/zeros fill
  12522. F000:C7E1  03 F0                add    si,ax
  12523. F000:C7E3  2E: 8B 34                mov    si,cs:[si]
  12524. F000:C7E6  58                    pop    ax
  12525. F000:C7E7  C3                    retn
  12526.                 sub_198        endp
  12527.   
  12528. F000:C7E8  7F DA A8 DA 6E DA            db    7Fh, 0DAh, 0A8h, 0DAh, 6Eh, 0DAh
  12529. F000:C7EE  B0 DA 43 DB 32 DB            db    0B0h, 0DAh, 43h, 0DBh, 32h, 0DBh
  12530. F000:C7F4  21 DB 10 DB 7F DA            db    21h, 0DBh, 10h, 0DBh, 7Fh, 0DAh
  12531. F000:C7FA  F0 C8 E8 C8 F8 C8            db    0F0h, 0C8h, 0E8h, 0C8h, 0F8h, 0C8h
  12532. F000:C800  E0 C8 00 C9 7F DA            db    0E0h, 0C8h, 0, 0C9h, 7Fh, 0DAh
  12533. F000:C806  CC DA DD DA EE DA            db    0CCh, 0DAh, 0DDh, 0DAh, 0EEh, 0DAh
  12534. F000:C80C  FF DA D8 C8 B8 C8            db    0FFh, 0DAh, 0D8h, 0C8h, 0B8h, 0C8h
  12535. F000:C812  C0 C8 C8 C8 D0 C8            db    0C0h, 0C8h, 0C8h, 0C8h, 0D0h, 0C8h
  12536. F000:C818  28 C8 8B C0 20 C8            db    28h, 0C8h, 8Bh, 0C0h, 20h, 0C8h
  12537. F000:C81E  90 C0 18 C8 95 C0            db    90h, 0C0h, 18h, 0C8h, 95h, 0C0h
  12538. F000:C824  28 C8 8B C0 20 C8            db    28h, 0C8h, 8Bh, 0C0h, 20h, 0C8h
  12539. F000:C82A  90 C0 18 C8 95 C0            db    90h, 0C0h, 18h, 0C8h, 95h, 0C0h
  12540. F000:C830  38 C8 90 C0 38 C8            db    38h, 0C8h, 90h, 0C0h, 38h, 0C8h
  12541. F000:C836  90 C0 30 C8 95 C0            db    90h, 0C0h, 30h, 0C8h, 95h, 0C0h
  12542. F000:C83C  30 C8 95 C0 B0 C8            db    30h, 0C8h, 95h, 0C0h, 0B0h, 0C8h
  12543. F000:C842  88 C1 48 C8 E2 D2            db    88h, 0C1h, 48h, 0C8h, 0E2h, 0D2h
  12544. F000:C848  40 C8 8C D2 50 C8            db    40h, 0C8h, 8Ch, 0D2h, 50h, 0C8h
  12545. F000:C84E  38 D3 48 C8 E2 D2            db    38h, 0D3h, 48h, 0C8h, 0E2h, 0D2h
  12546. F000:C854  58 C8 9E D3 50 C8            db    58h, 0C8h, 9Eh, 0D3h, 50h, 0C8h
  12547. F000:C85A  38 D3 60 C8 FC D3            db    38h, 0D3h, 60h, 0C8h, 0FCh, 0D3h
  12548. F000:C860  58 C8 9E D3 68 C8            db    58h, 0C8h, 9Eh, 0D3h, 68h, 0C8h
  12549. F000:C866  5A D4 60 C8 FC D3            db    5Ah, 0D4h, 60h, 0C8h, 0FCh, 0D3h
  12550. F000:C86C  70 C8 96 C1 68 C8            db    70h, 0C8h, 96h, 0C1h, 68h, 0C8h
  12551. F000:C872  5A D4 78 C8 AC C1            db    5Ah, 0D4h, 78h, 0C8h, 0ACh, 0C1h
  12552. F000:C878  70 C8 96 C1 80 C8            db    70h, 0C8h, 96h, 0C1h, 80h, 0C8h
  12553. F000:C87E  D4 C1 78 C8 AC C1            db    0D4h, 0C1h, 78h, 0C8h, 0ACh, 0C1h
  12554. F000:C884  88 C8 0C C2 80 C8            db    88h, 0C8h, 0Ch, 0C2h, 80h, 0C8h
  12555. F000:C88A  D4 C1 90 C8 A9 C0            db    0D4h, 0C1h, 90h, 0C8h, 0A9h, 0C0h
  12556. F000:C890  88 C8 0C C2 98 C8            db    88h, 0C8h, 0Ch, 0C2h, 98h, 0C8h
  12557. F000:C896  E2 C0 90 C8 A9 C0            db    0E2h, 0C0h, 90h, 0C8h, 0A9h, 0C0h
  12558. F000:C89C  A0 C8 6F C1 98 C8            db    0A0h, 0C8h, 6Fh, 0C1h, 98h, 0C8h
  12559. F000:C8A2  E2 C0 A8 C8 4E C1            db    0E2h, 0C0h, 0A8h, 0C8h, 4Eh, 0C1h
  12560. F000:C8A8  A0 C8 6F C1 B0 C8            db    0A0h, 0C8h, 6Fh, 0C1h, 0B0h, 0C8h
  12561. F000:C8AE  88 C1 A8 C8 4E C1            db    88h, 0C1h, 0A8h, 0C8h, 4Eh, 0C1h
  12562. F000:C8B4  40 C8 8C D2 D8 C8            db    40h, 0C8h, 8Ch, 0D2h, 0D8h, 0C8h
  12563. F000:C8BA  C4 C4 C0 C8 B2 C4            db    0C4h, 0C4h, 0C0h, 0C8h, 0B2h, 0C4h
  12564. F000:C8C0  B8 C8 E8 C4 C8 C8            db    0B8h, 0C8h, 0E8h, 0C4h, 0C8h, 0C8h
  12565. F000:C8C6  B8 C4 C0 C8 B2 C4            db    0B8h, 0C4h, 0C0h, 0C8h, 0B2h, 0C4h
  12566. F000:C8CC  D0 C8 BE C4 C8 C8            db    0D0h, 0C8h, 0BEh, 0C4h, 0C8h, 0C8h
  12567. F000:C8D2  B8 C4 D8 C8 C4 C4            db    0B8h, 0C4h, 0D8h, 0C8h, 0C4h, 0C4h
  12568.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 214
  12569.  
  12570. F000:C8D8  D0 C8 BE C4 B8 C8            db    0D0h, 0C8h, 0BEh, 0C4h, 0B8h, 0C8h
  12571. F000:C8DE  E8 C4 00 C9 D6 C4            db    0E8h, 0C4h, 0, 0C9h, 0D6h, 0C4h
  12572. F000:C8E4  E8 C8 DC C4 E0 C8            db    0E8h, 0C8h, 0DCh, 0C4h, 0E0h, 0C8h
  12573. F000:C8EA  E8 C4 F0 C8 D0 C4            db    0E8h, 0C4h, 0F0h, 0C8h, 0D0h, 0C4h
  12574. F000:C8F0  E8 C8 DC C4 F8 C8            db    0E8h, 0C8h, 0DCh, 0C4h, 0F8h, 0C8h
  12575. F000:C8F6  CA C4 F0 C8 D0 C4            db    0CAh, 0C4h, 0F0h, 0C8h, 0D0h, 0C4h
  12576. F000:C8FC  00 C9 D6 C4 F8 C8            db    0, 0C9h, 0D6h, 0C4h, 0F8h, 0C8h
  12577. F000:C902  CA C4 E0 C8 E8 C4            db    0CAh, 0C4h, 0E0h, 0C8h, 0E8h, 0C4h
  12578. F000:C908  10 C9 E2 C4 10 C9            db    10h, 0C9h, 0E2h, 0C4h, 10h, 0C9h
  12579. F000:C90E  E2 C4 08 C9 E8 C4            db    0E2h, 0C4h, 8, 0C9h, 0E8h, 0C4h
  12580. F000:C914  08 C9 E8 C4 38 C9            db    8, 0C9h, 0E8h, 0C4h, 38h, 0C9h
  12581. F000:C91A  4C C5 20 C9 09 C5            db    4Ch, 0C5h, 20h, 0C9h, 9, 0C5h
  12582. F000:C920  18 C9 EE C4 28 C9            db    18h, 0C9h, 0EEh, 0C4h, 28h, 0C9h
  12583. F000:C926  28 C5 20 C9 09 C5            db    28h, 0C5h, 20h, 0C9h, 9, 0C5h
  12584. F000:C92C  30 C9 3A C5 28 C9            db    30h, 0C9h, 3Ah, 0C5h, 28h, 0C9h
  12585. F000:C932  28 C5 38 C9 4C C5            db    28h, 0C5h, 38h, 0C9h, 4Ch, 0C5h
  12586. F000:C938  30 C9 3A C5 18 C9            db    30h, 0C9h, 3Ah, 0C5h, 18h, 0C9h
  12587. F000:C93E  EE C4 BD C9 BD C9            db    0EEh, 0C4h, 0BDh, 0C9h, 0BDh, 0C9h
  12588. F000:C944  BD C9 0C CA 32 CA            db    0BDh, 0C9h, 0Ch, 0CAh, 32h, 0CAh
  12589. F000:C94A  BD C9 C4 C9 B3 CA            db    0BDh, 0C9h, 0C4h, 0C9h, 0B3h, 0CAh
  12590. F000:C950  A5 C9 63 CA 9A C9            db    0A5h, 0C9h, 63h, 0CAh, 9Ah, 0C9h
  12591. F000:C956  9A C9 9A C9 9A C9            db    9Ah, 0C9h, 9Ah, 0C9h, 9Ah, 0C9h
  12592. F000:C95C  9A C9 9A C9 BD C9            db    9Ah, 0C9h, 9Ah, 0C9h, 0BDh, 0C9h
  12593. F000:C962  A1 C9                db    0A1h, 0C9h
  12594.   
  12595.   
  12596.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 15h ▒▒▒▒▒
  12597.                 ;
  12598.                 ;   GENERAL SERVICES
  12599.                 ;
  12600.                 ;      On old PCs this function is only used for cassette servicing.
  12601.                 ;      Additional functions have been added for advanced features with
  12602.                 ;      newer equipment.
  12603.                 ;
  12604.                 ;      Called with: ah = function code
  12605.                 ;
  12606.                 ;      Returns:        CF = 0 if successful
  12607.                 ;            CF = 1 if failure or function not supported
  12608.                 ;
  12609.                 ;      Functions:
  12610.                 ;        ah = 0        Cassette motor set on
  12611.                 ;        ah = 1        Cassette motor set off
  12612.                 ;        ah = 2        Read cx bytes from cassette, es:bx = ptr to    load area
  12613.                 ;        ah = 3        Write cx bytes to cassette,  es:bx = ptr to    read area
  12614.                 ;        ah = 0Fh   Disk format hook, called from disk format routines
  12615.                 ;              after a cylinder access completed.  Called with:
  12616.                 ;              al = 1-undergoing surface analysis, 2-if formating
  12617.                 ;        ah = 21h   Error log (PS 2), al = 0 to read, al = 1 to    write
  12618.                 ;
  12619.                 ;             ***  LAP TOP MACHINES ONLY - 40h to 44h  ***
  12620.                 ;        ah = 40h   Systems info in cx, bx - al = 0 to read, 1 to write
  12621.                 ;              for modem info in bx - al = 2 to read, 3 to write
  12622.                 ;        ah = 41h   Wait for an event, dx = i/o port to read or    use es:di
  12623.                 ;              as ptr to user event.  al = type of event    0-4,11-14
  12624.                 ;              bh = event mask, bl = # of 55ms counts to    timeout
  12625.                 ;        ah = 42h   Power off, al = 0 or 1 for mode of power off
  12626.                 ;        ah = 43h   Get    system status in al
  12627.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 215
  12628.  
  12629.                 ;              7     6     5     4       3     2    1    0
  12630.                 ;            low   extrn  bad  pwr up  modem  ports        LCD
  12631.                 ;              battery  pwr  time  alarm    on     on      missing
  12632.                 ;        ah = 44h   Modem power, al = 0 turn off,  al = 1 turn on
  12633.                 ;
  12634.                 ;               *** FUNCTIONS IN RECENT BIOS VERSIONS ONLY ***
  12635.                 ;        ah = 4Fh   Keyboard input hook, called every keystroke    with
  12636.                 ;              al = scan code.  CF = 1 to change or use the scan
  12637.                 ;              code in al.  CF = 0 to ignore the key.
  12638.                 ;        ah = 80h   Open device number bx, in process number cx.
  12639.                 ;        ah = 81h   Close device number bx, in process number cx.
  12640.                 ;        ah = 82h   Terminate device number bx
  12641.                 ;        ah = 83h   Wait for timeout, and set bit 15 at ptr es:bx when
  12642.                 ;              timed out.  al = 0 to set wait period cx:dx uSec,
  12643.                 ;              al = 1 to stop timeout timer.
  12644.                 ;        ah = 84h   Game port read, dx = 0 to read switches into al
  12645.                 ;              high nibble,  dx = 1 to read linear position
  12646.                 ;              (Unit 1: ax = x, bx = y   Unit 2: cx = x,    dx = y)
  12647.                 ;        ah = 85h   Get    system request key state, al = 0 down, al = 1 up
  12648.                 ;        ah = 86h   Wait cx:dx microseconds before return
  12649.                 ;        ah = 87h   Transfer cx words to/from memory above 1 meg
  12650.                 ;              es:si ptr to table with source & destination ptrs:
  12651.                 ;              es:si -> zeros          db  16dup(0)
  12652.                 ;                   src_seg_limit  dw  ?        ; 1-64K bytes
  12653.                 ;                   scr_ptr_low    dw  ?        ; 0-64K range
  12654.                 ;                   scr_ptr_high   db  ?        ; 0-16 Meg range
  12655.                 ;                   scr_rights     db  93h      ; r/w access
  12656.                 ;                   scr_zero       dw  0
  12657.                 ;                   dst_seg_limit  dw  ?        ; 1-64K bytes
  12658.                 ;                   dst_ptr_low    dw  ?        ; 0-64K range
  12659.                 ;                   dst_ptr_high   db  ?        ; 0-16 Meg range
  12660.                 ;                   dst_rights     db  93h      ; r/w access
  12661.                 ;                   dst_zero       dw  0
  12662.                 ;                   zeros2         db  16dup(0)
  12663.                 ;              Notes:
  12664.                 ;            cx = 32K words max xfer, ptr_low & ptr_high form
  12665.                 ;            a 24 bit physical address (do not use a    segment)
  12666.                 ;              Return codes: al = 0 if ok, al = 1 parity    error
  12667.                 ;            al = 2 other errors, al = 3 gate addr line 20 bad
  12668.                 ;        ah = 88h   Get    extended memory size (above 1 Meg boundary)
  12669.                 ;              ax = (number of bytes / 1024)
  12670.                 ;        ah = 89h   Go to protected mode of operation. es:si ptr to table
  12671.                 ;              comprised of 8 groups of 8 byte ptr sub-arrays.  Each.
  12672.                 ;              group is formed from 8 bytes as follows:
  12673.                 ;              seg_limit    dw  ?     ; 1-64K bytes
  12674.                 ;              ptr_low      dw  ?     ; 0-64K range
  12675.                 ;              ptr_high     db  ?     ; 0-16 Meg range
  12676.                 ;              rights       db  93h   ; read/write access
  12677.                 ;              zero         dw  0     ; set to zero
  12678.                 ;              Ptr_low & high form a 24 bit physical address.
  12679.                 ;
  12680.                 ;              The 8 groups are as follows:
  12681.                 ;            es:si ->  Group_1   Set to all zero
  12682.                 ;                      Group_2   ptr to beginning of    Group_1
  12683.                 ;                      Group_3   ptr to Interrupt Descript Table IDT
  12684.                 ;                      Group_4   ptr to present DS segment
  12685.                 ;                      Group_5   ptr to present ES segment
  12686.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 216
  12687.  
  12688.                 ;                      Group_6   ptr to present SS segment
  12689.                 ;                      Group_7   ptr to present CS segment
  12690.                 ;                      Group_8   ptr where to jump to when done
  12691.                 ;              Also: bh & bl set as offset from beginning of IDT to
  12692.                 ;            spot where 1st & 2nd set of 8 hardware interrupts begin.
  12693.                 ;              Returns ah = 0 if ok, regs changed: ax,bp,ds,es,ss,cs
  12694.                 ;        ah = 90h   Device busy - used to signal DOS when it must wait.
  12695.                 ;              Type   0  Disk timeout          0FCh  Hard disk timeout
  12696.                 ;              codes  1  Floppy timeout                (PS 2 only)
  12697.                 ;              (al)   2  Keyboard no timeout   0FDh  Floppy motor timeout
  12698.                 ;                 3  Mouse timeout         0FEh  Printer timeout
  12699.                 ;               80h  Local area network (es:bx = network cntrl block
  12700.                 ;              Returns CF = 0 if failure, 1 if minimum wait time occurred
  12701.                 ;        ah = 91h   Interrupt done - used to signal DOS when hardware done
  12702.                 ;              al = type code (Device busy type codes)
  12703.                 ;        ah = C0h   Get    ROM system information table ptr in es:bx.  See data
  12704.                 ;              area starting at byte "sys_info_size".
  12705.                 ;
  12706.                 ;               *** PS 2 & COMPATIBLES ONLY - C1h to C4h    ***
  12707.                 ;        ah = C1h   Get    Extended BIOS data area segment in es
  12708.                 ;        ah = C2h   Mouse support (BIOS).  Sub-function code in    al
  12709.                 ;            al = 0  if bh = 0 mouse off, bh = 1 mouse on
  12710.                 ;            al = 1  reset mouse & parameters, returns bh = 0
  12711.                 ;                      bl altered on return
  12712.                 ;            al = 2  Set number of updates per second in bh,
  12713.                 ;                      bh = 0 - 10 updates/sec  4 - 80  updates/sec
  12714.                 ;                           1 - 20 updates/sec  5 - 100 updates/sec
  12715.                 ;                           2 - 40 updates/sec  6 - 200 updates/sec
  12716.                 ;                           3 - 60 updates/sec
  12717.                 ;            al = 3  Set resolution in counts per millimeter:
  12718.                 ;                      bh = 0 - 1 cnts per mm   2 - 4 cnts per mm
  12719.                 ;                           1 - 2 cnts per mm   3 - 8 cnts per mm
  12720.                 ;            al = 4  Get device type, bh = 0
  12721.                 ;            al = 5  Initialize pointing device interface data size
  12722.                 ;                      bh = size 1 to 8 (1 to 8 bytes)
  12723.                 ;            al = 6  Additional sub-functions in bh:
  12724.                 ;                      bh = 0  Get status, cl = cnts    per mm (see al=3)
  12725.                 ;                              dl = updates/sec in hex, bl = status:
  12726.                 ;                                   bit 6 = mode (0=stream, 1=remote)
  12727.                 ;                                       5 = 0 disabled, 1 enabled
  12728.                 ;                                       4 = scaling (0=1:1, 1=2:1)
  12729.                 ;                                       2 = Left button pressed
  12730.                 ;                                       0 = right button pressed
  12731.                 ;                      bh = 1  Set scaling to 1:1
  12732.                 ;                      bh = 2  Set scaling to 2:1
  12733.                 ;            al = 7  Set location to "call far" when    data available
  12734.                 ;                       in es:bx
  12735.                 ;              Return code for all sub-functions in al:
  12736.                 ;            al = 0  successful             3  interface error
  12737.                 ;                 1  bad function call      4  resend
  12738.                 ;                 2  invalid input          5  no far call installed
  12739.                 ;        ah = C3h   Watchdog timer mode al = 0 disable, al = 1 enable,
  12740.                 ;              bx = set counter value 1 to FFh
  12741.                 ;        ah = C4h   Bus    option select (POS) subfunction in al,
  12742.                 ;              al = 0  Get base POS adapter register address in dx
  12743.                 ;               1  Enable setup for slot bl
  12744.                 ;               2  Adapter enable
  12745.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 217
  12746.  
  12747.   
  12748. F000:C964            int_15h_servics    proc    near            ;  xref F000:F859
  12749. F000:C964  80 FC 87                cmp    ah,87h
  12750. F000:C967  75 04                jne    short loc_1016        ; Jump if not equal
  12751. F000:C969  50                    push    ax
  12752. F000:C96A  E9 0146                jmp    loc_1027        ; (CAB3)
  12753. F000:C96D            loc_1016:                    ;  xref F000:C967
  12754. F000:C96D  FB                    sti                ; Enable interrupts
  12755. F000:C96E  50                    push    ax
  12756. F000:C96F  8A C4                mov    al,ah
  12757. F000:C971  2C 80                sub    al,80h
  12758. F000:C973  78 25                js    short loc_1018        ; Jump if sign=1
  12759. F000:C975  3C 12                cmp    al,12h
  12760. F000:C977  73 3B                jae    short loc_1019        ; Jump if above or =
  12761. F000:C979  32 E4                xor    ah,ah            ; Zero register
  12762. F000:C97B  D1 E0                shl    ax,1            ; Shift w/zeros fill
  12763. F000:C97D  05 C940                add    ax,0C940h
  12764. F000:C980  55                    push    bp
  12765. F000:C981  8B E8                mov    bp,ax
  12766. F000:C983  2E: 8B 46 00                mov    ax,cs:[bp]
  12767. F000:C987  5D                    pop    bp
  12768. F000:C988  FF E0                jmp    ax            ;*Register jump
  12769. F000:C98A            loc_1017:                    ;  xref F000:C9B6
  12770. F000:C98A  2E: F6 06 E2C0 40            test    byte ptr cs:data_158,40h    ; (F000:E2C0=0BFh) '@'
  12771. F000:C990  74 08                jz    short loc_1018        ; Jump if zero
  12772. F000:C992  3C 42                cmp    al,42h            ; 'B'
  12773. F000:C994  75 04                jne    short loc_1018        ; Jump if not equal
  12774. F000:C996  58                    pop    ax
  12775. F000:C997  E9 AD8C                jmp    $-5271h
  12776. F000:C99A            loc_1018:                    ;  xref F000:C973, C990, C994
  12777. F000:C99A  58                    pop    ax
  12778. F000:C99B  B4 86                mov    ah,86h
  12779. F000:C99D  F9                    stc                ; Set carry flag
  12780. F000:C99E  CA 0002                retf    2            ; Return far
  12781.                 int_15h_servics    endp
  12782.   
  12783. F000:C9A1  58 B4 00 CF 58 B0            db    58h, 0B4h, 0, 0CFh, 58h, 0B0h
  12784. F000:C9A7  31 FA E8 F3 24 8A            db    31h, 0FAh, 0E8h, 0F3h, 24h, 8Ah
  12785. F000:C9AD  E0 B0 30 E8 EC 24            db    0E0h, 0B0h, 30h, 0E8h, 0ECh, 24h
  12786. F000:C9B3  CF                    db    0CFh
  12787. F000:C9B4            loc_1019:                    ;  xref F000:C977
  12788. F000:C9B4  3C 40                cmp    al,40h            ; '@'
  12789. F000:C9B6  75 D2                jne    loc_1017        ; Jump if not equal
  12790. F000:C9B8  BB E6F5                mov    bx,0E6F5h
  12791. F000:C9BB  0E                    push    cs
  12792. F000:C9BC  07                    pop    es
  12793. F000:C9BD  F8                    clc                ; Clear carry flag
  12794. F000:C9BE            loc_1020:                    ;  xref F000:CA0A
  12795. F000:C9BE  58                    pop    ax
  12796. F000:C9BF  B4 00                mov    ah,0
  12797. F000:C9C1  CA 0002                retf    2            ; Return far
  12798. F000:C9C4  53 06 6A 40 07 BB            db    53h, 6, 6Ah, 40h, 7, 0BBh
  12799. F000:C9CA  A0 00 E8 1B 02 72            db    0A0h, 0, 0E8h, 1Bh, 2, 72h
  12800. F000:C9D0  37 51 52 1E 53 06            db    37h, 51h, 52h, 1Eh, 53h, 6
  12801. F000:C9D6  1F BB 04 00 E8 3F            db    1Fh, 0BBh, 4, 0, 0E8h, 3Fh
  12802. F000:C9DC  02 51 52 B3 04 E8            db    2, 51h, 52h, 0B3h, 4, 0E8h
  12803. F000:C9E2  38 02 51 52 B3 03            db    38h, 2, 51h, 52h, 0B3h, 3
  12804.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 218
  12805.  
  12806. F000:C9E8  E8 31 02 58 03 D0            db    0E8h, 31h, 2, 58h, 3, 0D0h
  12807. F000:C9EE  58 13 C8 58 03 D0            db    58h, 13h, 0C8h, 58h, 3, 0D0h
  12808. F000:C9F4  58 13 C8 5B 87 CA            db    58h, 13h, 0C8h, 5Bh, 87h, 0CAh
  12809. F000:C9FA            loc_1021:                    ;  xref F000:CA00
  12810. F000:C9FA  E8 25A5                call    sub_262            ; (EFA2)
  12811. F000:C9FD  73 03                jnc    short loc_1022        ; Jump if carry=0
  12812. F000:C9FF  4A                    dec    dx
  12813. F000:CA00  79 F8                jns    loc_1021        ; Jump if not sign
  12814. F000:CA02            loc_1022:                    ;  xref F000:C9FD
  12815. F000:CA02  C6 07 00                mov    byte ptr [bx],0
  12816. F000:CA05  1F                    pop    ds
  12817. F000:CA06  5A                    pop    dx
  12818. F000:CA07  59                    pop    cx
  12819. F000:CA08  07                    pop    es
  12820. F000:CA09  5B                    pop    bx
  12821. F000:CA0A  EB B2                jmp    short loc_1020        ; (C9BE)
  12822. F000:CA0C  58 50 0A C0 74 1B            db    58h, 50h, 0Ah, 0C0h, 74h, 1Bh
  12823. F000:CA12  3C 01 F9 75 A7 FA            db    3Ch, 1, 0F9h, 75h, 0A7h, 0FAh
  12824. F000:CA18  E8 5A 24 24 BF E8            db    0E8h, 5Ah, 24h, 24h, 0BFh, 0E8h
  12825. F000:CA1E  61 24 1E 6A 40 1F            db    61h, 24h, 1Eh, 6Ah, 40h, 1Fh
  12826. F000:CA24  C6 06 A0 00 00 FB            db    0C6h, 6, 0A0h, 0, 0, 0FBh
  12827. F000:CA2A  1F EB 91 E8 BA 01            db    1Fh, 0EBh, 91h, 0E8h, 0BAh, 1
  12828. F000:CA30  EB 8C D0 EA 74 03            db    0EBh, 8Ch, 0D0h, 0EAh, 74h, 3
  12829. F000:CA36  E9 61 FF 58 BA 01            db    0E9h, 61h, 0FFh, 58h, 0BAh, 1
  12830. F000:CA3C  02 72 05 EC 24 F0            db    2, 72h, 5, 0ECh, 24h, 0F0h
  12831. F000:CA42  EB 1C                db    0EBh, 1Ch
  12832. F000:CA44            loc_1023:
  12833. F000:CA44  B3 01                mov    bl,1
  12834. F000:CA46  E8 01DB                call    sub_203            ; (CC24)
  12835. F000:CA49  D0 E3                shl    bl,1            ; Shift w/zeros fill
  12836. F000:CA4B  51                    push    cx
  12837. F000:CA4C  E8 01D5                call    sub_203            ; (CC24)
  12838. F000:CA4F  D0 E3                shl    bl,1            ; Shift w/zeros fill
  12839. F000:CA51  51                    push    cx
  12840. F000:CA52  E8 01CF                call    sub_203            ; (CC24)
  12841. F000:CA55  D0 E3                shl    bl,1            ; Shift w/zeros fill
  12842. F000:CA57  51                    push    cx
  12843. F000:CA58  E8 01C9                call    sub_203            ; (CC24)
  12844. F000:CA5B  5A                    pop    dx
  12845. F000:CA5C  5B                    pop    bx
  12846. F000:CA5D  58                    pop    ax
  12847. F000:CA5E  87 CA                xchg    cx,dx
  12848.   
  12849. F000:CA60            loc_ret_1024:
  12850. F000:CA60  CA 0002                retf    2            ; Return far
  12851. F000:CA63  FA E8 B4 C4 58 75            db    0FAh, 0E8h, 0B4h, 0C4h, 58h, 75h
  12852. F000:CA69  3F E8 73 24 06 1F            db    3Fh, 0E8h, 73h, 24h, 6, 1Fh
  12853. F000:CA6F  56 53 83 C6 38 E8            db    56h, 53h, 83h, 0C6h, 38h, 0E8h
  12854. F000:CA75  52 01 5B 5E 58 83            db    52h, 1, 5Bh, 5Eh, 58h, 83h
  12855. F000:CA7B  C4 02 6A 30 50 0F            db    0C4h, 2, 6Ah, 30h, 50h, 0Fh
  12856. F000:CA81  01 54 08 0F 01 5C            db    1, 54h, 8, 0Fh, 1, 5Ch
  12857. F000:CA87  10 0F 01 E0 25 1F            db    10h, 0Fh, 1, 0E0h, 25h, 1Fh
  12858. F000:CA8D  00 0C 01 90 0F 01            db    0, 0Ch, 1, 90h, 0Fh, 1
  12859. F000:CA93  F0 EA 99 CA 38 00            db    0F0h, 0EAh, 99h, 0CAh, 38h, 0
  12860. F000:CA99  B0 28 8E D0 B0 18            db    0B0h, 28h, 8Eh, 0D0h, 0B0h, 18h
  12861. F000:CA9F  8E D8 B0 20 8E C0            db    8Eh, 0D8h, 0B0h, 20h, 8Eh, 0C0h
  12862. F000:CAA5  33 C0 EB 04 F9 B8            db    33h, 0C0h, 0EBh, 4, 0F9h, 0B8h
  12863.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 219
  12864.  
  12865. F000:CAAB  FF FF                db    0FFh, 0FFh
  12866.   
  12867. F000:CAAD            loc_ret_1025:
  12868. F000:CAAD  CA 0002                retf    2            ; Return far
  12869. F000:CAB0            loc_1026:                    ;  xref F000:CAB8
  12870. F000:CAB0  E9 0105                jmp    loc_1032        ; (CBB8)
  12871. F000:CAB3            loc_1027:                    ;  xref F000:C96A
  12872. F000:CAB3  FA                    cli                ; Disable interrupts
  12873. F000:CAB4  E8 C483                call    sub_46            ; (8F3A)
  12874. F000:CAB7  58                    pop    ax
  12875. F000:CAB8  75 F6                jnz    loc_1026        ; Jump if not zero
  12876. F000:CABA  60                    pusha                ; Save all regs
  12877. F000:CABB  06                    push    es
  12878. F000:CABC  1E                    push    ds
  12879. F000:CABD  B0 02                mov    al,2
  12880. F000:CABF  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  12881. F000:CAC1  B8 0040                mov    ax,seg_b
  12882. F000:CAC4  8E D8                mov    ds,ax
  12883. F000:CAC6  B8 098F                mov    ax,98Fh
  12884. F000:CAC9  E8 23C6                call    sub_256            ; (EE92)
  12885.                         assume    ds:seg_b
  12886. F000:CACC  89 26 0067                mov    @gen_io_ptr,sp        ; (0040:0067=522h)
  12887. F000:CAD0  8C D0                mov    ax,ss
  12888. F000:CAD2  A3 0069                mov    @gen_io_seg,ax        ; (0040:0069=9087h)
  12889. F000:CAD5  8C C0                mov    ax,es
  12890. F000:CAD7  8E D8                mov    ds,ax
  12891. F000:CAD9  E8 0105                call    sub_201            ; (CBE1)
  12892. F000:CADC  03 C6                add    ax,si
  12893. F000:CADE  80 D3 00                adc    bl,0
  12894. F000:CAE1  32 FF                xor    bh,bh            ; Zero register
  12895. F000:CAE3  83 C6 08                add    si,8
  12896. F000:CAE6  E8 00E9                call    sub_200            ; (CBD2)
  12897. F000:CAE9  0F 01 14                lgdt    qword ptr [si]        ; Load global des tbl
  12898. F000:CAEC  83 C6 18                add    si,18h
  12899. F000:CAEF  E8 00D7                call    sub_199            ; (CBC9)
  12900. F000:CAF2  8C D0                mov    ax,ss
  12901. F000:CAF4  E8 00EA                call    sub_201            ; (CBE1)
  12902. F000:CAF7  B7 93                mov    bh,93h
  12903. F000:CAF9  83 C6 08                add    si,8
  12904. F000:CAFC  E8 00D3                call    sub_200            ; (CBD2)
  12905. F000:CAFF  2E: 0F 01 1E E270            lidt    qword ptr cs:data_153    ; (F000:E270=100h) Load int des table
  12906. F000:CB05  0F 01 E0                smsw    ax            ; Store machine stat
  12907. F000:CB08  25 001F                and    ax,1Fh
  12908. F000:CB0B  0C 01                or    al,1
  12909. F000:CB0D  90                    nop                ;
  12910. F000:CB0E  90                    nop                ;
  12911. F000:CB0F  0F 01 F0                lmsw    ax            ; Load machine status
  12912.                 ;* This jump is    a protected mode jump to flush the pre-fetch queue -
  12913.                 ;* - the segment selector was ignored.
  12914. F000:CB12  EA 0020CB17                jmp    far ptr loc_1028    ; (CB17)
  12915. F000:CB17            loc_1028:                    ;  xref F000:CB12
  12916. F000:CB17  B0 28                mov    al,28h            ; '('
  12917. F000:CB19  8E D0                mov    ss,ax
  12918. F000:CB1B  B0 10                mov    al,10h
  12919. F000:CB1D  8E D8                mov    ds,ax
  12920. F000:CB1F  B0 18                mov    al,18h
  12921. F000:CB21  8E C0                mov    es,ax
  12922.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 220
  12923.  
  12924. F000:CB23  33 F6                xor    si,si            ; Zero register
  12925. F000:CB25  33 FF                xor    di,di            ; Zero register
  12926. F000:CB27  FC                    cld                ; Clear direction
  12927. F000:CB28  D1 E9                shr    cx,1            ; Shift w/zeros fill
  12928. F000:CB2A  66| F3/ A5                rep    movsd            ; Rep when cx >0 Mov [si] to es:[di]
  12929. F000:CB2D  73 01                jnc    short loc_1029        ; Jump if carry=0
  12930. F000:CB2F  A5                    movsw                ; Mov [si] to es:[di]
  12931. F000:CB30            loc_1029:                    ;  xref F000:CB2D
  12932. F000:CB30  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  12933. F000:CB32  A8 C0                test    al,0C0h
  12934. F000:CB34  74 17                jz    short loc_1030        ; Jump if zero
  12935. F000:CB36  83 EE 04                sub    si,4
  12936. F000:CB39  8B 04                mov    ax,[si]
  12937. F000:CB3B  89 04                mov    [si],ax
  12938. F000:CB3D  8B 44 02                mov    ax,[si+2]
  12939. F000:CB40  89 44 02                mov    [si+2],ax
  12940. F000:CB43  8B 04                mov    ax,[si]
  12941. F000:CB45  8B 44 02                mov    ax,[si+2]
  12942. F000:CB48  E8 C2F8                call    sub_33            ; (8E43)
  12943. F000:CB4B  B4 01                mov    ah,1
  12944. F000:CB4D            loc_1030:                    ;  xref F000:CB34
  12945. F000:CB4D  8A C4                mov    al,ah
  12946. F000:CB4F  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  12947. F000:CB51  B8 008F                mov    ax,8Fh
  12948. F000:CB54  E8 233B                call    sub_256            ; (EE92)
  12949. F000:CB57  2E: 0F 01 16 E268            lgdt    qword ptr cs:data_152    ; (F000:E268=60h) Load global des tbl
  12950. F000:CB5D  B8 0040                mov    ax,seg_b
  12951. F000:CB60  8E D8                mov    ds,ax
  12952. F000:CB62  8E C0                mov    es,ax
  12953. F000:CB64  8E D0                mov    ss,ax
  12954. F000:CB66  66| C1 C8 10                ror    eax,10h            ; Rotate
  12955. F000:CB6A  8B C8                mov    cx,ax
  12956. F000:CB6C  0F 20 C0                mov    eax,cr0            ; Mov reg-control reg
  12957. F000:CB6F  66| 25 7FFFFFFE            and    eax,7FFFFFFEh
  12958. F000:CB75  90                    nop                ;
  12959. F000:CB76  90                    nop                ;
  12960. F000:CB77  0F 22 C0                mov    cr0,eax            ; Mov reg-control reg
  12961. F000:CB7A  EA F000CB7F                jmp    far ptr loc_1031    ; (CB7F)
  12962. F000:CB7F            loc_1031:                    ;  xref F000:CB7A
  12963. F000:CB7F  2E: 0F 01 1E E2B8            lidt    qword ptr cs:data_157    ; (F000:E2B8=0FFFFh) Load int des tabl
  12964. F000:CB85  2E: 0F 01 16 E2A0            lgdt    qword ptr cs:data_155    ; (F000:E2A0=0FFFFh) Load global des t
  12965. F000:CB8B  8B C1                mov    ax,cx
  12966. F000:CB8D  66| C1 C8 10                ror    eax,10h            ; Rotate
  12967. F000:CB91  B8 0040                mov    ax,seg_b
  12968. F000:CB94  8E D8                mov    ds,ax
  12969. F000:CB96  A1 0069                mov    ax,@gen_io_seg        ; (0040:0069=9087h)
  12970. F000:CB99  8E D0                mov    ss,ax
  12971. F000:CB9B  8B 26 0067                mov    sp,@gen_io_ptr        ; (0040:0067=522h)
  12972. F000:CB9F  E8 C355                call    sub_44            ; (8EF7)
  12973. F000:CBA2  E8 C36F                call    sub_45            ; (8F14)
  12974. F000:CBA5  B0 0D                mov    al,0Dh
  12975. F000:CBA7  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  12976.                                         ;  al = 0Dh, status register D
  12977. F000:CBA9  1F                    pop    ds
  12978. F000:CBAA  07                    pop    es
  12979. F000:CBAB  61                    popa                ; Restore all regs
  12980. F000:CBAC  86 C4                xchg    al,ah
  12981.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 221
  12982.  
  12983. F000:CBAE  E4 80                in    al,80h            ; port 80h, diagnostc chkpoint
  12984. F000:CBB0  86 C4                xchg    al,ah
  12985. F000:CBB2  74 0C                jz    short loc_1033        ; Jump if zero
  12986. F000:CBB4  0A E4                or    ah,ah            ; Zero ?
  12987. F000:CBB6  75 08                jnz    short loc_1033        ; Jump if not zero
  12988. F000:CBB8            loc_1032:                    ;  xref F000:CAB0
  12989. F000:CBB8  B4 03                mov    ah,3
  12990. F000:CBBA  86 C4                xchg    al,ah
  12991. F000:CBBC  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  12992. F000:CBBE  86 C4                xchg    al,ah
  12993. F000:CBC0            loc_1033:                    ;  xref F000:CBB2, CBB6
  12994. F000:CBC0  84 E4                test    ah,ah
  12995. F000:CBC2  74 01                jz    short loc_1034        ; Jump if zero
  12996. F000:CBC4  F9                    stc                ; Set carry flag
  12997. F000:CBC5            loc_1034:                    ;  xref F000:CBC2
  12998. F000:CBC5  FB                    sti                ; Enable interrupts
  12999. F000:CBC6  CA 0002                retf    2            ; Return far
  13000.   
  13001.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13002.                 ;                   SUBROUTINE
  13003.                 ;
  13004.                 ;         Called from:     F000:CAEF
  13005.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13006.   
  13007.                 sub_199        proc    near
  13008. F000:CBC9  BB 9B0F                mov    bx,9B0Fh
  13009. F000:CBCC  33 C0                xor    ax,ax            ; Zero register
  13010. F000:CBCE  E8 0001                call    sub_200            ; (CBD2)
  13011. F000:CBD1  C3                    retn
  13012.                 sub_199        endp
  13013.   
  13014.   
  13015.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13016.                 ;                   SUBROUTINE
  13017.                 ;
  13018.                 ;         Called from:     F000:CAE6, CAFC, CBCE
  13019.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13020.   
  13021.                 sub_200        proc    near
  13022. F000:CBD2  89 44 02                mov    [si+2],ax
  13023. F000:CBD5  89 5C 04                mov    [si+4],bx
  13024. F000:CBD8  33 C0                xor    ax,ax            ; Zero register
  13025. F000:CBDA  89 44 06                mov    [si+6],ax
  13026. F000:CBDD  48                    dec    ax
  13027. F000:CBDE  89 04                mov    [si],ax
  13028. F000:CBE0  C3                    retn
  13029.                 sub_200        endp
  13030.   
  13031.   
  13032.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13033.                 ;                   SUBROUTINE
  13034.                 ;
  13035.                 ;         Called from:     F000:CAD9, CAF4
  13036.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13037.   
  13038.                 sub_201        proc    near
  13039. F000:CBE1  8A DC                mov    bl,ah
  13040.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 222
  13041.  
  13042. F000:CBE3  C1 E0 04                shl    ax,4            ; Shift w/zeros fill
  13043. F000:CBE6  C0 EB 04                shr    bl,4            ; Shift w/zeros fill
  13044. F000:CBE9  C3                    retn
  13045.                 sub_201        endp
  13046.   
  13047.   
  13048.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13049.                 ;                   SUBROUTINE
  13050.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13051.   
  13052.                 sub_202        proc    near
  13053. F000:CBEA  1E                    push    ds
  13054. F000:CBEB  6A 40                push    40h
  13055. F000:CBED  1F                    pop    ds
  13056. F000:CBEE  FA                    cli                ; Disable interrupts
  13057. F000:CBEF  F6 06 00A0 01            test    timer_clk_flag,1    ; (0040:00A0=0)
  13058. F000:CBF4  F9                    stc                ; Set carry flag
  13059. F000:CBF5  75 22                jnz    short loc_1035        ; Jump if not zero
  13060. F000:CBF7  E8 2270                call    sub_251            ; (EE6A)
  13061. F000:CBFA  C6 06 00A0 01            mov    timer_clk_flag,1    ; (0040:00A0=0)
  13062. F000:CBFF  89 1E 0098                mov    @timer_wait_off,bx    ; (0040:0098=0)
  13063. F000:CC03  8C 06 009A                mov    @timer_wait_seg,es    ; (0040:009A=0)
  13064. F000:CC07  89 16 009C                mov    timer_clk_low,dx    ; (0040:009C=0)
  13065. F000:CC0B  89 0E 009E                mov    timer_clk_hi,cx        ; (0040:009E=0)
  13066. F000:CC0F  E8 2263                call    sub_252            ; (EE75)
  13067. F000:CC12  24 7F                and    al,7Fh
  13068. F000:CC14  0C 40                or    al,40h            ; '@'
  13069. F000:CC16  E8 2268                call    sub_254            ; (EE81)
  13070. F000:CC19            loc_1035:                    ;  xref F000:CBF5
  13071. F000:CC19  FB                    sti                ; Enable interrupts
  13072. F000:CC1A  1F                    pop    ds
  13073. F000:CC1B  C3                    retn
  13074.                 sub_202        endp
  13075.   
  13076. F000:CC1C            loc_1036:                    ;  xref F000:CC21
  13077. F000:CC1C  D1 E9                shr    cx,1            ; Shift w/zeros fill
  13078. F000:CC1E  D1 DA                rcr    dx,1            ; Rotate thru carry
  13079. F000:CC20  4B                    dec    bx
  13080. F000:CC21  75 F9                jnz    loc_1036        ; Jump if not zero
  13081. F000:CC23  C3                    retn
  13082.   
  13083.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13084.                 ;                   SUBROUTINE
  13085.                 ;
  13086.                 ;         Called from:     F000:CA46, CA4C, CA52, CA58
  13087.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13088.   
  13089.                 sub_203        proc    near
  13090. F000:CC24  FA                    cli                ; Disable interrupts
  13091. F000:CC25  E8 002C                call    sub_204            ; (CC54)
  13092. F000:CC28  EE                    out    dx,al            ; port 0, DMA-1 bas&add ch 0
  13093. F000:CC29  50                    push    ax
  13094. F000:CC2A  B9 0100                mov    cx,100h
  13095. F000:CC2D  8A E3                mov    ah,bl
  13096. F000:CC2F  E8 2328                call    sub_260            ; (EF5A)
  13097. F000:CC32  58                    pop    ax
  13098. F000:CC33  72 12                jc    short loc_1038        ; Jump if carry Set
  13099.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 223
  13100.  
  13101. F000:CC35  8B C8                mov    cx,ax
  13102. F000:CC37  E8 001A                call    sub_204            ; (CC54)
  13103. F000:CC3A  3B C8                cmp    cx,ax
  13104. F000:CC3C  73 01                jae    short loc_1037        ; Jump if above or =
  13105. F000:CC3E  40                    inc    ax
  13106. F000:CC3F            loc_1037:                    ;  xref F000:CC3C
  13107. F000:CC3F  2B C8                sub    cx,ax
  13108. F000:CC41  C1 E9 04                shr    cx,4            ; Shift w/zeros fill
  13109. F000:CC44  80 E5 01                and    ch,1
  13110. F000:CC47            loc_1038:                    ;  xref F000:CC33
  13111. F000:CC47  FB                    sti                ; Enable interrupts
  13112. F000:CC48  51                    push    cx
  13113. F000:CC49  B9 0100                mov    cx,100h
  13114. F000:CC4C  B4 0F                mov    ah,0Fh
  13115. F000:CC4E  E8 2309                call    sub_260            ; (EF5A)
  13116. F000:CC51  F8                    clc                ; Clear carry flag
  13117. F000:CC52  59                    pop    cx
  13118. F000:CC53  C3                    retn
  13119.                 sub_203        endp
  13120.   
  13121.   
  13122.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13123.                 ;                   SUBROUTINE
  13124.                 ;
  13125.                 ;         Called from:     F000:CC25, CC37
  13126.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13127.   
  13128.                 sub_204        proc    near
  13129. F000:CC54  B0 00                mov    al,0
  13130. F000:CC56  E6 43                out    43h,al            ; port 43h, 8253 wrt timr mode
  13131.                                         ;  al = 0, timer 0 count mode
  13132. F000:CC58  EB 00                jmp    short loc_1039        ; (CC5A)
  13133. F000:CC5A            loc_1039:                    ;  xref F000:CC58
  13134. F000:CC5A  EB 00                jmp    short loc_1040        ; (CC5C)
  13135. F000:CC5C            loc_1040:                    ;  xref F000:CC5A
  13136. F000:CC5C  E4 40                in    al,40h            ; port 40h, 8253 timer 0 clock
  13137. F000:CC5E  86 C4                xchg    al,ah
  13138. F000:CC60  EB 00                jmp    short loc_1041        ; (CC62)
  13139. F000:CC62            loc_1041:                    ;  xref F000:CC60
  13140. F000:CC62  EB 00                jmp    short loc_1042        ; (CC64)
  13141. F000:CC64            loc_1042:                    ;  xref F000:CC62
  13142. F000:CC64  E4 40                in    al,40h            ; port 40h, 8253 timer 0 clock
  13143. F000:CC66  86 C4                xchg    al,ah
  13144. F000:CC68  C3                    retn
  13145.                 sub_204        endp
  13146.   
  13147. F000:CC69  00                    db    0
  13148. F000:CC6A            loc_1043:                    ;  xref F000:ABB4
  13149. F000:CC6A  E6 0D                out    0Dh,al            ; port 0Dh, DMA-1 master clear
  13150. F000:CC6C  EB 00                jmp    short loc_1044        ; (CC6E)
  13151. F000:CC6E            loc_1044:                    ;  xref F000:CC6C
  13152. F000:CC6E  EB 00                jmp    short loc_1045        ; (CC70)
  13153. F000:CC70            loc_1045:                    ;  xref F000:CC6E
  13154. F000:CC70  E6 DA                out    0DAh,al            ; port 0DAh, DMA-2 master clear
  13155. F000:CC72  B0 04                mov    al,4
  13156. F000:CC74  EB 00                jmp    short loc_1046        ; (CC76)
  13157. F000:CC76            loc_1046:                    ;  xref F000:CC74
  13158.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 224
  13159.  
  13160. F000:CC76  EB 00                jmp    short loc_1047        ; (CC78)
  13161. F000:CC78            loc_1047:                    ;  xref F000:CC76
  13162. F000:CC78  E6 08                out    8,al            ; port 8, DMA-1 command reg
  13163. F000:CC7A  EB 00                jmp    short loc_1048        ; (CC7C)
  13164. F000:CC7C            loc_1048:                    ;  xref F000:CC7A
  13165. F000:CC7C  EB 00                jmp    short loc_1049        ; (CC7E)
  13166. F000:CC7E            loc_1049:                    ;  xref F000:CC7C
  13167. F000:CC7E  E6 D0                out    0D0h,al            ; port 0D0h, DMA-2 command reg
  13168. F000:CC80  33 DB                xor    bx,bx            ; Zero register
  13169. F000:CC82  BA 007F                mov    dx,7Fh
  13170. F000:CC85  B9 0010                mov    cx,10h
  13171.   
  13172. F000:CC88            locloop_1050:                    ;  xref F000:CC8C
  13173. F000:CC88  42                    inc    dx
  13174. F000:CC89  E8 00F6                call    sub_208            ; (CD82)
  13175. F000:CC8C  E1 FA                loopz    locloop_1050        ; Loop if zf=1, cx>0
  13176.   
  13177. F000:CC8E  B0 50                mov    al,50h            ; 'P'
  13178. F000:CC90  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13179. F000:CC92  E8 A9D9                call    $-5624h
  13180. F000:CC95  B0 51                mov    al,51h            ; 'Q'
  13181. F000:CC97  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13182. F000:CC99  EB 00                jmp    short loc_1051        ; (CC9B)
  13183. F000:CC9B            loc_1051:                    ;  xref F000:CC99
  13184. F000:CC9B  EB 00                jmp    short loc_1052        ; (CC9D)
  13185. F000:CC9D            loc_1052:                    ;  xref F000:CC9B
  13186. F000:CC9D  E6 0C                out    0Ch,al            ; port 0Ch, DMA-1 clr byte ptr
  13187. F000:CC9F  EB 00                jmp    short loc_1053        ; (CCA1)
  13188. F000:CCA1            loc_1053:                    ;  xref F000:CC9F
  13189. F000:CCA1  EB 00                jmp    short loc_1054        ; (CCA3)
  13190. F000:CCA3            loc_1054:                    ;  xref F000:CCA1
  13191. F000:CCA3  E6 D8                out    0D8h,al            ; port 0D8h, DMA-2 clr byte ptr
  13192. F000:CCA5  4B                    dec    bx
  13193. F000:CCA6  BA FFFF                mov    dx,0FFFFh
  13194. F000:CCA9  B9 0008                mov    cx,8
  13195. F000:CCAC  51                    push    cx
  13196.   
  13197. F000:CCAD            locloop_1055:                    ;  xref F000:CCB1
  13198. F000:CCAD  42                    inc    dx
  13199. F000:CCAE  E8 00D1                call    sub_208            ; (CD82)
  13200. F000:CCB1  E1 FA                loopz    locloop_1055        ; Loop if zf=1, cx>0
  13201.   
  13202. F000:CCB3  B0 52                mov    al,52h            ; 'R'
  13203. F000:CCB5  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13204. F000:CCB7  BA 00BE                mov    dx,0BEh
  13205. F000:CCBA  59                    pop    cx
  13206.   
  13207. F000:CCBB            locloop_1056:                    ;  xref F000:CCC0
  13208. F000:CCBB  42                    inc    dx
  13209. F000:CCBC  42                    inc    dx
  13210. F000:CCBD  E8 00C2                call    sub_208            ; (CD82)
  13211. F000:CCC0  E1 F9                loopz    locloop_1056        ; Loop if zf=1, cx>0
  13212.   
  13213. F000:CCC2  B0 53                mov    al,53h            ; 'S'
  13214. F000:CCC4  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13215. F000:CCC6  E8 A9F2                call    $-560Bh
  13216. F000:CCC9  B0 54                mov    al,54h            ; 'T'
  13217.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 225
  13218.  
  13219. F000:CCCB  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13220. F000:CCCD  68 CCD4                push    0CCD4h
  13221. F000:CCD0  68 FA4E                push    0FA4Eh
  13222. F000:CCD3  C3                    retn
  13223. F000:CCD4  B0 55 E6 80 EB 00            db    0B0h, 55h, 0E6h, 80h, 0EBh, 0
  13224. F000:CCDA  EB 00                db    0EBh, 0
  13225. F000:CCDC            loc_1057:
  13226. F000:CCDC  E6 0C                out    0Ch,al            ; port 0Ch, DMA-1 clr byte ptr
  13227. F000:CCDE  EB 00                jmp    short loc_1058        ; (CCE0)
  13228. F000:CCE0            loc_1058:                    ;  xref F000:CCDE
  13229. F000:CCE0  EB 00                jmp    short loc_1059        ; (CCE2)
  13230. F000:CCE2            loc_1059:                    ;  xref F000:CCE0
  13231. F000:CCE2  E6 D8                out    0D8h,al            ; port 0D8h, DMA-2 clr byte ptr
  13232. F000:CCE4  B0 00                mov    al,0
  13233. F000:CCE6  EB 00                jmp    short loc_1060        ; (CCE8)
  13234. F000:CCE8            loc_1060:                    ;  xref F000:CCE6
  13235. F000:CCE8  EB 00                jmp    short loc_1061        ; (CCEA)
  13236. F000:CCEA            loc_1061:                    ;  xref F000:CCE8
  13237. F000:CCEA  E6 08                out    8,al            ; port 8, DMA-1 command reg
  13238. F000:CCEC  EB 00                jmp    short loc_1062        ; (CCEE)
  13239. F000:CCEE            loc_1062:                    ;  xref F000:CCEC
  13240. F000:CCEE  EB 00                jmp    short loc_1063        ; (CCF0)
  13241. F000:CCF0            loc_1063:                    ;  xref F000:CCEE
  13242. F000:CCF0  E6 D0                out    0D0h,al            ; port 0D0h, DMA-2 command reg
  13243. F000:CCF2  E8 003E                call    sub_205            ; (CD33)
  13244. F000:CCF5  B0 56                mov    al,56h            ; 'V'
  13245. F000:CCF7  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13246. F000:CCF9  B0 00                mov    al,0
  13247. F000:CCFB  E6 D2                out    0D2h,al            ; port 0D2h, DMA-2 request reg
  13248. F000:CCFD  EB 00                jmp    short loc_1064        ; (CCFF)
  13249. F000:CCFF            loc_1064:                    ;  xref F000:CCFD
  13250. F000:CCFF  EB 00                jmp    short loc_1065        ; (CD01)
  13251. F000:CD01            loc_1065:                    ;  xref F000:CCFF
  13252. F000:CD01  E6 D4                out    0D4h,al            ; port 0D4h, DMA-2 mask reg bit
  13253. F000:CD03  EB 13                jmp    short loc_1066        ; (CD18)
  13254. F000:CD05  90 BE 76 7D E9 88            db    90h, 0BEh, 76h, 7Dh, 0E9h, 88h
  13255. F000:CD0B  C0 BE 5C 7D E9 82            db    0C0h, 0BEh, 5Ch, 7Dh, 0E9h, 82h
  13256. F000:CD11  C0 BE 69 7D E9 7C            db    0C0h, 0BEh, 69h, 7Dh, 0E9h, 7Ch
  13257. F000:CD17  C0                    db    0C0h
  13258. F000:CD18            loc_1066:                    ;  xref F000:CD03
  13259. F000:CD18  FA                    cli                ; Disable interrupts
  13260. F000:CD19  BB 0870                mov    bx,870h
  13261. F000:CD1C  E8 21BD                call    sub_259            ; (EEDC)
  13262. F000:CD1F  B0 57                mov    al,57h            ; 'W'
  13263. F000:CD21  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  13264. F000:CD23  B0 FA                mov    al,0FAh
  13265. F000:CD25  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  13266.                                         ;  al = 0FAh, IRQ0 & 2 only
  13267. F000:CD27  B0 FF                mov    al,0FFh
  13268. F000:CD29  EB 00                jmp    short loc_1067        ; (CD2B)
  13269. F000:CD2B            loc_1067:                    ;  xref F000:CD29
  13270. F000:CD2B  EB 00                jmp    short loc_1068        ; (CD2D)
  13271. F000:CD2D            loc_1068:                    ;  xref F000:CD2B
  13272. F000:CD2D  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  13273.                                         ;  al = 0FFh, inhibit interrupts
  13274. F000:CD2F  FB                    sti                ; Enable interrupts
  13275. F000:CD30  E9 C65B                jmp    loc_326            ; (938E)
  13276.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 226
  13277.  
  13278.   
  13279.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13280.                 ;                   SUBROUTINE
  13281.                 ;
  13282.                 ;         Called from:     F000:CCF2
  13283.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13284.   
  13285.                 sub_205        proc    near
  13286. F000:CD33  EB 00                jmp    short loc_1069        ; (CD35)
  13287. F000:CD35            loc_1069:                    ;  xref F000:CD33
  13288. F000:CD35  EB 00                jmp    short loc_1070        ; (CD37)
  13289. F000:CD37            loc_1070:                    ;  xref F000:CD35
  13290. F000:CD37  B0 C0                mov    al,0C0h
  13291. F000:CD39  E6 D6                out    0D6h,al            ; port 0D6h, DMA-2 mode reg
  13292. F000:CD3B  B0 40                mov    al,40h            ; '@'
  13293. F000:CD3D  EB 00                jmp    short loc_1071        ; (CD3F)
  13294. F000:CD3F            loc_1071:                    ;  xref F000:CD3D
  13295. F000:CD3F  EB 00                jmp    short loc_1072        ; (CD41)
  13296. F000:CD41            loc_1072:                    ;  xref F000:CD3F
  13297. F000:CD41  E6 0B                out    0Bh,al            ; port 0Bh, DMA-1 mode reg
  13298. F000:CD43  E8 0007                call    sub_206            ; (CD4D)
  13299. F000:CD46  E8 0004                call    sub_206            ; (CD4D)
  13300. F000:CD49  E8 0001                call    sub_206            ; (CD4D)
  13301. F000:CD4C  C3                    retn
  13302.                 sub_205        endp
  13303.   
  13304.   
  13305.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13306.                 ;                   SUBROUTINE
  13307.                 ;
  13308.                 ;         Called from:     F000:CD43, CD46, CD49
  13309.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13310.   
  13311.                 sub_206        proc    near
  13312. F000:CD4D  EB 00                jmp    short loc_1073        ; (CD4F)
  13313. F000:CD4F            loc_1073:                    ;  xref F000:CD4D
  13314. F000:CD4F  EB 00                jmp    short loc_1074        ; (CD51)
  13315. F000:CD51            loc_1074:                    ;  xref F000:CD4F
  13316. F000:CD51  40                    inc    ax
  13317. F000:CD52  E6 0B                out    0Bh,al            ; port 0Bh, DMA-1 mode reg
  13318. F000:CD54  EB 00                jmp    short loc_1075        ; (CD56)
  13319. F000:CD56            loc_1075:                    ;  xref F000:CD54
  13320. F000:CD56  EB 00                jmp    short loc_1076        ; (CD58)
  13321. F000:CD58            loc_1076:                    ;  xref F000:CD56
  13322. F000:CD58  E6 D6                out    0D6h,al            ; port 0D6h, DMA-2 mode reg
  13323. F000:CD5A  C3                    retn
  13324.                 sub_206        endp
  13325.   
  13326.   
  13327.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13328.                 ;                   SUBROUTINE
  13329.                 ;
  13330.                 ;         Called from:     F000:CD85, CD8D, CD95, CD9D
  13331.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13332.   
  13333.                 sub_207        proc    near
  13334. F000:CD5B  50                    push    ax
  13335.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 227
  13336.  
  13337. F000:CD5C  EE                    out    dx,al            ; port 3BCh, MDA printer-1 data
  13338. F000:CD5D  EB 00                jmp    short loc_1077        ; (CD5F)
  13339. F000:CD5F            loc_1077:                    ;  xref F000:CD5D
  13340. F000:CD5F  EB 00                jmp    short loc_1078        ; (CD61)
  13341. F000:CD61            loc_1078:                    ;  xref F000:CD5F
  13342. F000:CD61  86 C4                xchg    al,ah
  13343. F000:CD63  0B DB                or    bx,bx            ; Zero ?
  13344. F000:CD65  74 09                jz    short loc_1082        ; Jump if zero
  13345. F000:CD67  EB 00                jmp    short loc_1079        ; (CD69)
  13346. F000:CD69            loc_1079:                    ;  xref F000:CD67
  13347. F000:CD69  EE                    out    dx,al            ; port 3BCh, MDA printer-1 data
  13348. F000:CD6A  EB 00                jmp    short loc_1080        ; (CD6C)
  13349. F000:CD6C            loc_1080:                    ;  xref F000:CD6A
  13350. F000:CD6C  EB 00                jmp    short loc_1081        ; (CD6E)
  13351. F000:CD6E            loc_1081:                    ;  xref F000:CD6C
  13352. F000:CD6E  EB 00                jmp    short loc_1082        ; (CD70)
  13353. F000:CD70            loc_1082:                    ;  xref F000:CD65, CD6E
  13354. F000:CD70  EC                    in    al,dx            ; port 3BCh, MDA printer-1 data
  13355. F000:CD71  3A C4                cmp    al,ah
  13356. F000:CD73  58                    pop    ax
  13357. F000:CD74  75 0B                jnz    short loc_ret_1085    ; Jump if not zero
  13358. F000:CD76  0B DB                or    bx,bx            ; Zero ?
  13359. F000:CD78  74 07                jz    short loc_ret_1085    ; Jump if zero
  13360. F000:CD7A  EB 00                jmp    short loc_1083        ; (CD7C)
  13361. F000:CD7C            loc_1083:                    ;  xref F000:CD7A
  13362. F000:CD7C  EB 00                jmp    short loc_1084        ; (CD7E)
  13363. F000:CD7E            loc_1084:                    ;  xref F000:CD7C
  13364. F000:CD7E  EC                    in    al,dx            ; port 3BCh, MDA printer-1 data
  13365. F000:CD7F  3A C4                cmp    al,ah
  13366.   
  13367. F000:CD81            loc_ret_1085:                    ;  xref F000:CD74, CD78
  13368. F000:CD81  C3                    retn
  13369.                 sub_207        endp
  13370.   
  13371.   
  13372.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13373.                 ;                   SUBROUTINE
  13374.                 ;
  13375.                 ;         Called from:     F000:9840, CC89, CCAE, CCBD
  13376.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13377.   
  13378.                 sub_208        proc    near
  13379. F000:CD82  B8 AA55                mov    ax,0AA55h
  13380. F000:CD85  E8 FFD3                call    sub_207            ; (CD5B)
  13381. F000:CD88  75 18                jnz    short loc_ret_1086    ; Jump if not zero
  13382. F000:CD8A  B8 55AA                mov    ax,55AAh
  13383. F000:CD8D  E8 FFCB                call    sub_207            ; (CD5B)
  13384. F000:CD90  75 10                jnz    short loc_ret_1086    ; Jump if not zero
  13385. F000:CD92  B8 CC0F                mov    ax,0CC0Fh
  13386. F000:CD95  E8 FFC3                call    sub_207            ; (CD5B)
  13387. F000:CD98  75 08                jnz    short loc_ret_1086    ; Jump if not zero
  13388. F000:CD9A  B8 0000                mov    ax,0
  13389. F000:CD9D  E8 FFBB                call    sub_207            ; (CD5B)
  13390. F000:CDA0  75 00                jnz    short loc_ret_1086    ; Jump if not zero
  13391.   
  13392. F000:CDA2            loc_ret_1086:                    ;  xref F000:CD88, CD90, CD98, CDA0
  13393. F000:CDA2  C3                    retn
  13394.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 228
  13395.  
  13396.                 sub_208        endp
  13397.   
  13398.   
  13399.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13400.                 ;                   SUBROUTINE
  13401.                 ;
  13402.                 ;         Called from:     F000:91A7
  13403.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13404.   
  13405.                 sub_209        proc    near
  13406. F000:CDA3  FA                    cli                ; Disable interrupts
  13407. F000:CDA4  FC                    cld                ; Clear direction
  13408. F000:CDA5  F7 C5 4000                test    bp,4000h
  13409. F000:CDA9  74 01                jz    short loc_1087        ; Jump if zero
  13410. F000:CDAB  C3                    retn
  13411. F000:CDAC            loc_1087:                    ;  xref F000:CDA9
  13412. F000:CDAC  06                    push    es
  13413. F000:CDAD  1E                    push    ds
  13414. F000:CDAE  E6 FB                out    0FBh,al            ; port 0FBh
  13415. F000:CDB0  B0 B8                mov    al,0B8h
  13416. F000:CDB2  E8 20D4                call    sub_255            ; (EE89)
  13417. F000:CDB5  A8 80                test    al,80h
  13418. F000:CDB7  75 09                jnz    short loc_1088        ; Jump if not zero
  13419. F000:CDB9  B0 03                mov    al,3
  13420. F000:CDBB  E8 29BB                call    sub_267            ; (F779)
  13421. F000:CDBE  A8 1F                test    al,1Fh
  13422. F000:CDC0  74 6F                jz    short loc_1090        ; Jump if zero
  13423. F000:CDC2            loc_1088:                    ;  xref F000:CDB7
  13424. F000:CDC2  B8 0F0F                mov    ax,0F0Fh
  13425. F000:CDC5  E8 29B1                call    sub_267            ; (F779)
  13426. F000:CDC8  50                    push    ax
  13427. F000:CDC9  B8 1010                mov    ax,1010h
  13428. F000:CDCC  E8 29AA                call    sub_267            ; (F779)
  13429. F000:CDCF  50                    push    ax
  13430. F000:CDD0  B8 1111                mov    ax,1111h
  13431. F000:CDD3  E8 29A3                call    sub_267            ; (F779)
  13432. F000:CDD6  50                    push    ax
  13433. F000:CDD7  B8 1212                mov    ax,1212h
  13434. F000:CDDA  E8 299C                call    sub_267            ; (F779)
  13435. F000:CDDD  50                    push    ax
  13436. F000:CDDE  B8 550F                mov    ax,550Fh
  13437. F000:CDE1  E8 2984                call    sub_266            ; (F768)
  13438. F000:CDE4  B8 5510                mov    ax,5510h
  13439. F000:CDE7  E8 297E                call    sub_266            ; (F768)
  13440. F000:CDEA  B8 5511                mov    ax,5511h
  13441. F000:CDED  E8 2978                call    sub_266            ; (F768)
  13442. F000:CDF0  B8 5512                mov    ax,5512h
  13443. F000:CDF3  E8 2972                call    sub_266            ; (F768)
  13444. F000:CDF6  06                    push    es
  13445. F000:CDF7  B8 C000                mov    ax,0C000h
  13446. F000:CDFA  8E C0                mov    es,ax
  13447. F000:CDFC  B9 0004                mov    cx,4
  13448. F000:CDFF  FA                    cli                ; Disable interrupts
  13449. F000:CE00  FC                    cld                ; Clear direction
  13450.   
  13451. F000:CE01            locloop_1089:                    ;  xref F000:CE0D
  13452. F000:CE01  51                    push    cx
  13453.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 229
  13454.  
  13455. F000:CE02  E8 DF92                call    sub_131            ; (AD97)
  13456. F000:CE05  8C C0                mov    ax,es
  13457. F000:CE07  80 C4 10                add    ah,10h
  13458. F000:CE0A  8E C0                mov    es,ax
  13459. F000:CE0C  59                    pop    cx
  13460. F000:CE0D  E2 F2                loop    locloop_1089        ; Loop if cx > 0
  13461.   
  13462. F000:CE0F  07                    pop    es
  13463. F000:CE10  58                    pop    ax
  13464. F000:CE11  86 C4                xchg    al,ah
  13465. F000:CE13  E8 2952                call    sub_266            ; (F768)
  13466. F000:CE16  58                    pop    ax
  13467. F000:CE17  86 C4                xchg    al,ah
  13468. F000:CE19  E8 294C                call    sub_266            ; (F768)
  13469. F000:CE1C  58                    pop    ax
  13470. F000:CE1D  86 C4                xchg    al,ah
  13471. F000:CE1F  E8 2946                call    sub_266            ; (F768)
  13472. F000:CE22  58                    pop    ax
  13473. F000:CE23  86 C4                xchg    al,ah
  13474. F000:CE25  E8 2940                call    sub_266            ; (F768)
  13475. F000:CE28  B0 8E                mov    al,8Eh
  13476. F000:CE2A  E8 205C                call    sub_255            ; (EE89)
  13477. F000:CE2D  A8 C0                test    al,0C0h
  13478. F000:CE2F  74 03                jz    short loc_1091        ; Jump if zero
  13479. F000:CE31            loc_1090:                    ;  xref F000:CDC0
  13480. F000:CE31  E9 00D9                jmp    loc_1098        ; (CF0D)
  13481. F000:CE34            loc_1091:                    ;  xref F000:CE2F
  13482. F000:CE34  B0 B8                mov    al,0B8h
  13483. F000:CE36  E8 2050                call    sub_255            ; (EE89)
  13484. F000:CE39  50                    push    ax
  13485. F000:CE3A  24 48                and    al,48h            ; 'H'
  13486. F000:CE3C  3C 40                cmp    al,40h            ; '@'
  13487. F000:CE3E  74 03                je    short loc_1092        ; Jump if equal
  13488. F000:CE40  EB 57                jmp    short loc_1093        ; (CE99)
  13489. F000:CE42  90                    db    90h
  13490. F000:CE43            loc_1092:                    ;  xref F000:CE3E
  13491. F000:CE43  B8 0012                mov    ax,12h
  13492. F000:CE46  E8 291F                call    sub_266            ; (F768)
  13493. F000:CE49  B9 1000                mov    cx,1000h
  13494. F000:CE4C  8E C1                mov    es,cx
  13495. F000:CE4E  B9 8000                mov    cx,8000h
  13496. F000:CE51  33 F6                xor    si,si            ; Zero register
  13497. F000:CE53  33 FF                xor    di,di            ; Zero register
  13498. F000:CE55  2E: F3/ A5                rep    movs word ptr es:[di],word ptr cs:[si]    ; Rep when cx >0 Mov [si] to es:[di]
  13499. F000:CE58  B9 8000                mov    cx,8000h
  13500. F000:CE5B  33 F6                xor    si,si            ; Zero register
  13501. F000:CE5D  33 FF                xor    di,di            ; Zero register
  13502. F000:CE5F  2E: F3/ A7                repe    cmps word ptr cs:[si],word ptr es:[di]    ; Rep zf=1+cx >0 Cmp [si] to es:[di]
  13503. F000:CE62  75 35                jnz    short loc_1093        ; Jump if not zero
  13504. F000:CE64  06                    push    es
  13505. F000:CE65  B8 CE6A                mov    ax,0CE6Ah
  13506. F000:CE68  50                    push    ax
  13507. F000:CE69  CB                    retf                ; Return far
  13508. F000:CE6A  B8 12 FF E8 F8 28            db    0B8h, 12h, 0FFh, 0E8h, 0F8h, 28h
  13509. F000:CE70  B9 00 F0 8E C1 B9            db    0B9h, 0, 0F0h, 8Eh, 0C1h, 0B9h
  13510. F000:CE76  00 80 33 F6 33 FF            db    0, 80h, 33h, 0F6h, 33h, 0FFh
  13511. F000:CE7C  2E F3 A5 B9 00 80            db    2Eh, 0F3h, 0A5h, 0B9h, 0, 80h
  13512.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 230
  13513.  
  13514. F000:CE82  33 F6 33 FF 2E F3            db    33h, 0F6h, 33h, 0FFh, 2Eh, 0F3h
  13515. F000:CE88  A7 B8 12 AA 74 02            db    0A7h, 0B8h, 12h, 0AAh, 74h, 2
  13516. F000:CE8E  B4 00 E8 D5 28 06            db    0B4h, 0, 0E8h, 0D5h, 28h, 6
  13517. F000:CE94  B8 99 CE 50 CB            db    0B8h, 99h, 0CEh, 50h, 0CBh
  13518. F000:CE99            loc_1093:                    ;  xref F000:CE40, CE62
  13519. F000:CE99  58                    pop    ax
  13520. F000:CE9A  24 28                and    al,28h            ; '('
  13521. F000:CE9C  3C 20                cmp    al,20h            ; ' '
  13522. F000:CE9E  74 03                je    short loc_1094        ; Jump if equal
  13523. F000:CEA0  EB 6B                jmp    short loc_1098        ; (CF0D)
  13524. F000:CEA2  90                    db    90h
  13525. F000:CEA3            loc_1094:                    ;  xref F000:CE9E
  13526. F000:CEA3  BA C000                mov    dx,0C000h
  13527. F000:CEA6  8E DA                mov    ds,dx
  13528. F000:CEA8  B6 C8                mov    dh,0C8h
  13529. F000:CEAA  33 C9                xor    cx,cx            ; Zero register
  13530. F000:CEAC            loc_1095:                    ;  xref F000:CECA
  13531. F000:CEAC  81 3E 0000 AA55            cmp    word ptr ds:rom_chk_word,0AA55h    ; (C000:0000=0AA55h)
  13532. F000:CEB2  52                    push    dx
  13533. F000:CEB3  BA 0080                mov    dx,80h
  13534. F000:CEB6  75 09                jnz    short loc_1096        ; Jump if not zero
  13535. F000:CEB8  B1 FF                mov    cl,0FFh
  13536. F000:CEBA  8A 16 0002                mov    dl,ds:rom_chk_size    ; (C000:0002=40h)
  13537. F000:CEBE  C1 E2 05                shl    dx,5            ; Shift w/zeros fill
  13538. F000:CEC1            loc_1096:                    ;  xref F000:CEB6
  13539. F000:CEC1  8C D8                mov    ax,ds
  13540. F000:CEC3  03 C2                add    ax,dx
  13541. F000:CEC5  8E D8                mov    ds,ax
  13542. F000:CEC7  5A                    pop    dx
  13543. F000:CEC8  3B C2                cmp    ax,dx
  13544. F000:CECA  72 E0                jb    loc_1095        ; Jump if below
  13545. F000:CECC  E3 3F                jcxz    short loc_1098        ; Jump if cx=0
  13546. F000:CECE  B9 C000                mov    cx,0C000h
  13547. F000:CED1  8E D9                mov    ds,cx
  13548. F000:CED3  B9 1000                mov    cx,1000h
  13549. F000:CED6  8E C1                mov    es,cx
  13550. F000:CED8  B9 8000                mov    cx,8000h
  13551. F000:CEDB  33 F6                xor    si,si            ; Zero register
  13552. F000:CEDD  33 FF                xor    di,di            ; Zero register
  13553. F000:CEDF  F3/ A5                rep    movsw            ; Rep when cx >0 Mov [si] to es:[di]
  13554. F000:CEE1  B8 0F0F                mov    ax,0F0Fh
  13555. F000:CEE4  E8 2881                call    sub_266            ; (F768)
  13556. F000:CEE7  B9 1000                mov    cx,1000h
  13557. F000:CEEA  8E D9                mov    ds,cx
  13558. F000:CEEC  B9 C000                mov    cx,0C000h
  13559. F000:CEEF  8E C1                mov    es,cx
  13560. F000:CEF1  B9 8000                mov    cx,8000h
  13561. F000:CEF4  33 F6                xor    si,si            ; Zero register
  13562. F000:CEF6  33 FF                xor    di,di            ; Zero register
  13563. F000:CEF8  F3/ A5                rep    movsw            ; Rep when cx >0 Mov [si] to es:[di]
  13564. F000:CEFA  B9 8000                mov    cx,8000h
  13565. F000:CEFD  33 F6                xor    si,si            ; Zero register
  13566. F000:CEFF  33 FF                xor    di,di            ; Zero register
  13567. F000:CF01  F3/ A7                repe    cmpsw            ; Rep zf=1+cx >0 Cmp [si] to es:[di]
  13568. F000:CF03  B8 0A0F                mov    ax,0A0Fh
  13569. F000:CF06  74 02                jz    short loc_1097        ; Jump if zero
  13570. F000:CF08  B4 00                mov    ah,0
  13571.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 231
  13572.  
  13573. F000:CF0A            loc_1097:                    ;  xref F000:CF06
  13574. F000:CF0A  E8 285B                call    sub_266            ; (F768)
  13575. F000:CF0D            loc_1098:                    ;  xref F000:CE31, CEA0, CECC
  13576. F000:CF0D  E6 F9                out    0F9h,al            ; port 0F9h
  13577. F000:CF0F  1F                    pop    ds
  13578. F000:CF10  07                    pop    es
  13579. F000:CF11  C3                    retn
  13580.                 sub_209        endp
  13581.   
  13582. F000:CF12  32 ED B0 6A BC 1C            db    32h, 0EDh, 0B0h, 6Ah, 0BCh, 1Ch
  13583. F000:CF18  CF E9 7D 28 1E CF            db    0CFh, 0E9h, 7Dh, 28h, 1Eh, 0CFh
  13584. F000:CF1E  A8 08 75 03 E9 65            db    0A8h, 8, 75h, 3, 0E9h, 65h
  13585. F000:CF24  01 8A C8 A8 01 74            db    1, 8Ah, 0C8h, 0A8h, 1, 74h
  13586. F000:CF2A  37 24 FE 8A E0 B0            db    37h, 24h, 0FEh, 8Ah, 0E0h, 0B0h
  13587. F000:CF30  6A 90 BC 38 CF E9            db    6Ah, 90h, 0BCh, 38h, 0CFh, 0E9h
  13588. F000:CF36  4E 28 3A CF B8 6F            db    4Eh, 28h, 3Ah, 0CFh, 0B8h, 6Fh
  13589. F000:CF3C  6E 90 BC 44 CF E9            db    6Eh, 90h, 0BCh, 44h, 0CFh, 0E9h
  13590. F000:CF42  55 28 46 CF 86 C4            db    55h, 28h, 46h, 0CFh, 86h, 0C4h
  13591. F000:CF48  BC 4E CF E9 4B 28            db    0BCh, 4Eh, 0CFh, 0E9h, 4Bh, 28h
  13592. F000:CF4E  50 CF 40 40 8B D0            db    50h, 0CFh, 40h, 40h, 8Bh, 0D0h
  13593. F000:CF54  EC A8 F8 75 09 8A            db    0ECh, 0A8h, 0F8h, 75h, 9, 8Ah
  13594. F000:CF5A  C1 24 FE 8A C8 80            db    0C1h, 24h, 0FEh, 8Ah, 0C8h, 80h
  13595. F000:CF60  CD 02                db    0CDh, 2
  13596. F000:CF62            loc_1099:
  13597. F000:CF62  8A C1                mov    al,cl
  13598. F000:CF64  A8 10                test    al,10h
  13599. F000:CF66  74 41                jz    short loc_1100        ; Jump if zero
  13600. F000:CF68  24 CF                and    al,0CFh
  13601. F000:CF6A  8A E0                mov    ah,al
  13602. F000:CF6C  B0 6A                mov    al,6Ah            ; 'j'
  13603. F000:CF6E  BC CF74                mov    sp,0CF74h
  13604. F000:CF71  E9 2812                jmp    loc_1443        ; (F786)
  13605. F000:CF74  76 CF B8 78 77 90            db    76h, 0CFh, 0B8h, 78h, 77h, 90h
  13606. F000:CF7A  BC 80 CF E9 19 28            db    0BCh, 80h, 0CFh, 0E9h, 19h, 28h
  13607. F000:CF80  82 CF 86 C4 BC 8A            db    82h, 0CFh, 86h, 0C4h, 0BCh, 8Ah
  13608. F000:CF86  CF E9 0F 28 8C CF            db    0CFh, 0E9h, 0Fh, 28h, 8Ch, 0CFh
  13609. F000:CF8C  05 04 00 8B D0 32            db    5, 4, 0, 8Bh, 0D0h, 32h
  13610. F000:CF92  E4 90 BC 9A CF E9            db    0E4h, 90h, 0BCh, 9Ah, 0CFh, 0E9h
  13611. F000:CF98  98 27 9C CF 0A E4            db    98h, 27h, 9Ch, 0CFh, 0Ah, 0E4h
  13612. F000:CF9E  74 09 8A C1 24 CF            db    74h, 9, 8Ah, 0C1h, 24h, 0CFh
  13613. F000:CFA4  8A C8 80 CD 10            db    8Ah, 0C8h, 80h, 0CDh, 10h
  13614. F000:CFA9            loc_1100:                    ;  xref F000:CF66
  13615. F000:CFA9  8A E1                mov    ah,cl
  13616. F000:CFAB  B0 6A                mov    al,6Ah            ; 'j'
  13617. F000:CFAD  90                    nop                ;
  13618. F000:CFAE  BC CFB4                mov    sp,0CFB4h
  13619. F000:CFB1  E9 27D2                jmp    loc_1443        ; (F786)
  13620. F000:CFB4  B6 CF B0 69 BC BE            db    0B6h, 0CFh, 0B0h, 69h, 0BCh, 0BEh
  13621. F000:CFBA  CF E9 DB 27 C0 CF            db    0CFh, 0E9h, 0DBh, 27h, 0C0h, 0CFh
  13622. F000:CFC0  8A C8 A8 10 74 3D            db    8Ah, 0C8h, 0A8h, 10h, 74h, 3Dh
  13623. F000:CFC6  24 EF 8A E0 B0 69            db    24h, 0EFh, 8Ah, 0E0h, 0B0h, 69h
  13624. F000:CFCC  BC D2 CF E9 B4 27            db    0BCh, 0D2h, 0CFh, 0E9h, 0B4h, 27h
  13625. F000:CFD2  D4 CF B8 72 71 90            db    0D4h, 0CFh, 0B8h, 72h, 71h, 90h
  13626. F000:CFD8  BC DE CF E9 BB 27            db    0BCh, 0DEh, 0CFh, 0E9h, 0BBh, 27h
  13627. F000:CFDE  E0 CF 86 C4 BC E8            db    0E0h, 0CFh, 86h, 0C4h, 0BCh, 0E8h
  13628. F000:CFE4  CF E9 B1 27 EA CF            db    0CFh, 0E9h, 0B1h, 27h, 0EAh, 0CFh
  13629. F000:CFEA  8B D0 32 E4 BC F4            db    8Bh, 0D0h, 32h, 0E4h, 0BCh, 0F4h
  13630.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 232
  13631.  
  13632. F000:CFF0  CF E9 3E 27 F6 CF            db    0CFh, 0E9h, 3Eh, 27h, 0F6h, 0CFh
  13633. F000:CFF6  0A E4 74 09 8A C1            db    0Ah, 0E4h, 74h, 9, 8Ah, 0C1h
  13634. F000:CFFC  24 EF 8A C8 80 CD            db    24h, 0EFh, 8Ah, 0C8h, 80h, 0CDh
  13635. F000:D002  04 8A C1 A8 04 74            db    4, 8Ah, 0C1h, 0A8h, 4, 74h
  13636. F000:D008  37 24 FB 8A E0 B0            db    37h, 24h, 0FBh, 8Ah, 0E0h, 0B0h
  13637. F000:D00E  69 90 BC 16 D0 E9            db    69h, 90h, 0BCh, 16h, 0D0h, 0E9h
  13638. F000:D014  70 27 18 D0 B8 6C            db    70h, 27h, 18h, 0D0h, 0B8h, 6Ch
  13639. F000:D01A  6B 90 BC 22 D0 E9            db    6Bh, 90h, 0BCh, 22h, 0D0h, 0E9h
  13640. F000:D020  77 27 24 D0 86 C4            db    77h, 27h, 24h, 0D0h, 86h, 0C4h
  13641. F000:D026  BC 2C D0 E9 6D 27            db    0BCh, 2Ch, 0D0h, 0E9h, 6Dh, 27h
  13642. F000:D02C  2E D0 40 40 8B D0            db    2Eh, 0D0h, 40h, 40h, 8Bh, 0D0h
  13643. F000:D032  EC A8 F8 75 09 8A            db    0ECh, 0A8h, 0F8h, 75h, 9, 8Ah
  13644. F000:D038  C1 24 FB 8A C8 80            db    0C1h, 24h, 0FBh, 8Ah, 0C8h, 80h
  13645. F000:D03E  CD 01                db    0CDh, 1
  13646. F000:D040            loc_1101:
  13647. F000:D040  8A C1                mov    al,cl
  13648. F000:D042  A8 02                test    al,2
  13649. F000:D044  74 37                jz    short loc_1102        ; Jump if zero
  13650. F000:D046  24 FD                and    al,0FDh
  13651. F000:D048  8A E0                mov    ah,al
  13652. F000:D04A  B0 69                mov    al,69h            ; 'i'
  13653. F000:D04C  BC D052                mov    sp,0D052h
  13654. F000:D04F  E9 2734                jmp    loc_1443        ; (F786)
  13655. F000:D052  54 D0 B8 75 74 90            db    54h, 0D0h, 0B8h, 75h, 74h, 90h
  13656. F000:D058  BC 5E D0 E9 3B 27            db    0BCh, 5Eh, 0D0h, 0E9h, 3Bh, 27h
  13657. F000:D05E  60 D0 86 C4 BC 68            db    60h, 0D0h, 86h, 0C4h, 0BCh, 68h
  13658. F000:D064  D0 E9 31 27 6A D0            db    0D0h, 0E9h, 31h, 27h, 6Ah, 0D0h
  13659. F000:D06A  05 04 00 8B D0 EC            db    5, 4, 0, 8Bh, 0D0h, 0ECh
  13660. F000:D070  3C FF 74 09 8A C1            db    3Ch, 0FFh, 74h, 9, 8Ah, 0C1h
  13661. F000:D076  24 FD 8A C8 80 CD            db    24h, 0FDh, 8Ah, 0C8h, 80h, 0CDh
  13662. F000:D07C  08                    db    8
  13663. F000:D07D            loc_1102:                    ;  xref F000:D044
  13664. F000:D07D  8A E1                mov    ah,cl
  13665. F000:D07F  B0 69                mov    al,69h            ; 'i'
  13666. F000:D081  90                    nop                ;
  13667. F000:D082  BC D088                mov    sp,0D088h
  13668. F000:D085  E9 26FE                jmp    loc_1443        ; (F786)
  13669. F000:D088  8A D0 8A E5 B0 C0            db    8Ah, 0D0h, 8Ah, 0E5h, 0B0h, 0C0h
  13670. F000:D08E  BC 94 D0 E9 FE 1D            db    0BCh, 94h, 0D0h, 0E9h, 0FEh, 1Dh
  13671. F000:D094  96 D0 E9 20 24 00            db    96h, 0D0h, 0E9h, 20h, 24h, 0
  13672. F000:D09A  04            data_132    db    4            ; Data table (indexed access)
  13673.                                         ;  xref F000:D54C
  13674. F000:D09B  02 00 05 03 01 06            db    2, 0, 5, 3, 1, 6
  13675. F000:D0A1  00            data_133    db    0            ; Data table (indexed access)
  13676.                                         ;  xref F000:D585
  13677. F000:D0A2  03 03 06 01 04 06            db    3, 3, 6, 1, 4, 6
  13678. F000:D0A8  02 05 00 03 05 C9            db    2, 5, 0, 3, 5, 0C9h
  13679. F000:D0AE  CD CD CD D1 CD CD            db    0CDh, 0CDh, 0CDh, 0D1h, 0CDh, 0CDh
  13680. F000:D0B4  CD D1 CD CD CD D1            db    0CDh, 0D1h, 0CDh, 0CDh, 0CDh, 0D1h
  13681. F000:D0BA  CD CD CD D1 CD CD            db    0CDh, 0CDh, 0CDh, 0D1h, 0CDh, 0CDh
  13682. F000:D0C0  CD D1 CD CD CD D1            db    0CDh, 0D1h, 0CDh, 0CDh, 0CDh, 0D1h
  13683. F000:D0C6  CD CD CD B9 00 BA            db    0CDh, 0CDh, 0CDh, 0B9h, 0, 0BAh
  13684. F000:D0CC  53 75 6E B3 4D 6F            db    53h, 75h, 6Eh, 0B3h, 4Dh, 6Fh
  13685. F000:D0D2  6E B3 54 75 65 B3            db    6Eh, 0B3h, 54h, 75h, 65h, 0B3h
  13686. F000:D0D8  57 65 64 B3 54 68            db    57h, 65h, 64h, 0B3h, 54h, 68h
  13687. F000:D0DE  75 B3 46 72 69 B3            db    75h, 0B3h, 46h, 72h, 69h, 0B3h
  13688. F000:D0E4  53 61 74 BA 00 CC            db    53h, 61h, 74h, 0BAh, 0, 0CCh
  13689.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 233
  13690.  
  13691. F000:D0EA  CD CD CD D8 CD CD            db    0CDh, 0CDh, 0CDh, 0D8h, 0CDh, 0CDh
  13692. F000:D0F0  CD D8 CD CD CD D8            db    0CDh, 0D8h, 0CDh, 0CDh, 0CDh, 0D8h
  13693. F000:D0F6  CD CD CD D8 CD CD            db    0CDh, 0CDh, 0CDh, 0D8h, 0CDh, 0CDh
  13694. F000:D0FC  CD D8 CD CD CD D8            db    0CDh, 0D8h, 0CDh, 0CDh, 0CDh, 0D8h
  13695. F000:D102  CD CD CD B9 00 BA            db    0CDh, 0CDh, 0CDh, 0B9h, 0, 0BAh
  13696. F000:D108  20 20 20 B3 20 20            db    20h, 20h, 20h, 0B3h, 20h, 20h
  13697. F000:D10E  20 B3 20 20 20 B3            db    20h, 0B3h, 20h, 20h, 20h, 0B3h
  13698. F000:D114  20 20 20 B3 20 20            db    20h, 20h, 20h, 0B3h, 20h, 20h
  13699. F000:D11A  20 B3 20 20 20 B3            db    20h, 0B3h, 20h, 20h, 20h, 0B3h
  13700. F000:D120  20 20 20 BA 00 C7            db    20h, 20h, 20h, 0BAh, 0, 0C7h
  13701. F000:D126  C4 C4 C4 C5 C4 C4            db    0C4h, 0C4h, 0C4h, 0C5h, 0C4h, 0C4h
  13702. F000:D12C  C4 C5 C4 C4 C4 C5            db    0C4h, 0C5h, 0C4h, 0C4h, 0C4h, 0C5h
  13703. F000:D132  C4 C4 C4 C5 C4 C4            db    0C4h, 0C4h, 0C4h, 0C5h, 0C4h, 0C4h
  13704. F000:D138  C4 C5 C4 C4 C4 C5            db    0C4h, 0C5h, 0C4h, 0C4h, 0C4h, 0C5h
  13705. F000:D13E  C4 C4 C4 B6 00 CA            db    0C4h, 0C4h, 0C4h, 0B6h, 0, 0CAh
  13706. F000:D144  CD CD CD CF CD CD            db    0CDh, 0CDh, 0CDh, 0CFh, 0CDh, 0CDh
  13707. F000:D14A  CD CF CD CD CD CF            db    0CDh, 0CFh, 0CDh, 0CDh, 0CDh, 0CFh
  13708. F000:D150  CD CD CD CF CD CD            db    0CDh, 0CDh, 0CDh, 0CFh, 0CDh, 0CDh
  13709. F000:D156  CD CF CD CD CD CF            db    0CDh, 0CFh, 0CDh, 0CDh, 0CDh, 0CFh
  13710. F000:D15C  CD CD CD BC 00            db    0CDh, 0CDh, 0CDh, 0BCh, 0
  13711.   
  13712.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13713.                 ;                   SUBROUTINE
  13714.                 ;
  13715.                 ;         Called from:     F000:BE23
  13716.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13717.   
  13718.                 sub_210        proc    near
  13719. F000:D161  BE D0AD                mov    si,0D0ADh
  13720. F000:D164  BA 0A32                mov    dx,0A32h
  13721. F000:D167  E8 F505                call    sub_181            ; (C66F)
  13722. F000:D16A  BE D0CB                mov    si,0D0CBh
  13723. F000:D16D  BA 0B32                mov    dx,0B32h
  13724. F000:D170  E8 F4FC                call    sub_181            ; (C66F)
  13725. F000:D173  BE D0E9                mov    si,0D0E9h
  13726. F000:D176  BA 0C32                mov    dx,0C32h
  13727. F000:D179  E8 F4F3                call    sub_181            ; (C66F)
  13728. F000:D17C  BA 0D32                mov    dx,0D32h
  13729. F000:D17F  B9 0006                mov    cx,6
  13730.   
  13731. F000:D182            locloop_1103:                    ;  xref F000:D196
  13732. F000:D182  BE D107                mov    si,0D107h
  13733. F000:D185  52                    push    dx
  13734. F000:D186  E8 F4E6                call    sub_181            ; (C66F)
  13735. F000:D189  5A                    pop    dx
  13736. F000:D18A  FE C6                inc    dh
  13737. F000:D18C  BE D125                mov    si,0D125h
  13738. F000:D18F  52                    push    dx
  13739. F000:D190  E8 F4DC                call    sub_181            ; (C66F)
  13740. F000:D193  5A                    pop    dx
  13741. F000:D194  FE C6                inc    dh
  13742. F000:D196  E2 EA                loop    locloop_1103        ; Loop if cx > 0
  13743.   
  13744. F000:D198  BE D143                mov    si,0D143h
  13745. F000:D19B  FE CE                dec    dh
  13746. F000:D19D  E8 F4CF                call    sub_181            ; (C66F)
  13747. F000:D1A0  C3                    retn
  13748.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 234
  13749.  
  13750.                 sub_210        endp
  13751.   
  13752.   
  13753.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13754.                 ;                   SUBROUTINE
  13755.                 ;
  13756.                 ;         Called from:     F000:BF9C
  13757.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13758.   
  13759.                 sub_211        proc    near
  13760. F000:D1A1  FA                    cli                ; Disable interrupts
  13761. F000:D1A2  50                    push    ax
  13762. F000:D1A3  1E                    push    ds
  13763. F000:D1A4  33 C0                xor    ax,ax            ; Zero register
  13764. F000:D1A6  8E D8                mov    ds,ax
  13765. F000:D1A8  B8 D222                mov    ax,0D222h
  13766.                         assume    ds:seg_a
  13767. F000:D1AB  87 06 0040                xchg    ax,vectr_10h_off    ; (0000:0040=2E7h)
  13768. F000:D1AF  A3 0280                mov    ds:data_9e,ax        ; (0000:0280=0)
  13769. F000:D1B2  8C C8                mov    ax,cs
  13770. F000:D1B4  87 06 0042                xchg    ax,vectr_10h_seg    ; (0000:0042=0D3D1h)
  13771. F000:D1B8  A3 0282                mov    ds:data_10e,ax        ; (0000:0282=0)
  13772. F000:D1BB  B8 D232                mov    ax,0D232h
  13773. F000:D1BE  87 06 0068                xchg    ax,ds:data_4e        ; (0000:0068=0FE6Eh)
  13774. F000:D1C2  A3 0284                mov    ds:data_11e,ax        ; (0000:0284=0)
  13775. F000:D1C5  8C C8                mov    ax,cs
  13776. F000:D1C7  87 06 006A                xchg    ax,ds:data_5e        ; (0000:006A=0F000h)
  13777. F000:D1CB  A3 0286                mov    ds:data_12e,ax        ; (0000:0286=0)
  13778. F000:D1CE  B8 D252                mov    ax,0D252h
  13779. F000:D1D1  87 06 0070                xchg    ax,ds:data_6e        ; (0000:0070=3C0h)
  13780. F000:D1D5  A3 0288                mov    ds:data_13e,ax        ; (0000:0288=0)
  13781. F000:D1D8  8C C8                mov    ax,cs
  13782. F000:D1DA  87 06 0072                xchg    ax,ds:data_7e        ; (0000:0072=0D3D1h)
  13783. F000:D1DE  A3 028A                mov    ds:data_14e,ax        ; (0000:028A=0)
  13784. F000:D1E1  A1 046C                mov    ax,timer_low_        ; (0000:046C=0C319h)
  13785. F000:D1E4  2D 0011                sub    ax,11h
  13786. F000:D1E7  A3 028C                mov    ds:data_15e,ax        ; (0000:028C=0)
  13787. F000:D1EA  33 C0                xor    ax,ax            ; Zero register
  13788. F000:D1EC  A3 028E                mov    ds:data_16e,ax        ; (0000:028E=0)
  13789. F000:D1EF  1F                    pop    ds
  13790. F000:D1F0  58                    pop    ax
  13791. F000:D1F1  FB                    sti                ; Enable interrupts
  13792. F000:D1F2  C3                    retn
  13793.                 sub_211        endp
  13794.   
  13795.   
  13796.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  13797.                 ;                   SUBROUTINE
  13798.                 ;
  13799.                 ;         Called from:     F000:C036
  13800.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  13801.   
  13802.                 sub_212        proc    near
  13803. F000:D1F3  FA                    cli                ; Disable interrupts
  13804. F000:D1F4  50                    push    ax
  13805. F000:D1F5  1E                    push    ds
  13806. F000:D1F6  33 C0                xor    ax,ax            ; Zero register
  13807.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 235
  13808.  
  13809. F000:D1F8  8E D8                mov    ds,ax
  13810. F000:D1FA  A1 0280                mov    ax,ds:data_9e        ; (0000:0280=0)
  13811. F000:D1FD  A3 0040                mov    vectr_10h_off,ax    ; (0000:0040=2E7h)
  13812. F000:D200  A1 0282                mov    ax,ds:data_10e        ; (0000:0282=0)
  13813. F000:D203  A3 0042                mov    vectr_10h_seg,ax    ; (0000:0042=0D3D1h)
  13814. F000:D206  A1 0284                mov    ax,ds:data_11e        ; (0000:0284=0)
  13815. F000:D209  A3 0068                mov    ds:data_4e,ax        ; (0000:0068=0FE6Eh)
  13816. F000:D20C  A1 0286                mov    ax,ds:data_12e        ; (0000:0286=0)
  13817. F000:D20F  A3 006A                mov    ds:data_5e,ax        ; (0000:006A=0F000h)
  13818. F000:D212  A1 0288                mov    ax,ds:data_13e        ; (0000:0288=0)
  13819. F000:D215  A3 0070                mov    ds:data_6e,ax        ; (0000:0070=3C0h)
  13820. F000:D218  A1 028A                mov    ax,ds:data_14e        ; (0000:028A=0)
  13821. F000:D21B  A3 0072                mov    ds:data_7e,ax        ; (0000:0072=0D3D1h)
  13822. F000:D21E  1F                    pop    ds
  13823. F000:D21F  58                    pop    ax
  13824. F000:D220  FB                    sti                ; Enable interrupts
  13825. F000:D221  C3                    retn
  13826.                 sub_212        endp
  13827.   
  13828. F000:D222  50 1E 33 C0 8E D8            db    50h, 1Eh, 33h, 0C0h, 8Eh, 0D8h
  13829. F000:D228  FE 06 8E 02 1F 58            db    0FEh, 6, 8Eh, 2, 1Fh, 58h
  13830. F000:D22E  CD A0 EB 0E 50 1E            db    0CDh, 0A0h, 0EBh, 0Eh, 50h, 1Eh
  13831. F000:D234  33 C0 8E D8 FE 06            db    33h, 0C0h, 8Eh, 0D8h, 0FEh, 6
  13832. F000:D23A  8E 02 1F 58 CD A1            db    8Eh, 2, 1Fh, 58h, 0CDh, 0A1h
  13833. F000:D240  9C FA 50 1E 33 C0            db    9Ch, 0FAh, 50h, 1Eh, 33h, 0C0h
  13834. F000:D246  8E D8 FE 0E 8E 02            db    8Eh, 0D8h, 0FEh, 0Eh, 8Eh, 2
  13835. F000:D24C  1F 58 9D CA 02 00            db    1Fh, 58h, 9Dh, 0CAh, 2, 0
  13836. F000:D252  50 1E 33 C0 8E D8            db    50h, 1Eh, 33h, 0C0h, 8Eh, 0D8h
  13837. F000:D258  A1 6C 04 2B 06 8C            db    0A1h, 6Ch, 4, 2Bh, 6, 8Ch
  13838. F000:D25E  02 3D 12 00 72 09            db    2, 3Dh, 12h, 0, 72h, 9
  13839. F000:D264  01 06 8C 02 C6 06            db    1, 6, 8Ch, 2, 0C6h, 6
  13840. F000:D26A  8F 02 FF 80 3E 8E            db    8Fh, 2, 0FFh, 80h, 3Eh, 8Eh
  13841. F000:D270  02 00 75 11 80 3E            db    2, 0, 75h, 11h, 80h, 3Eh
  13842. F000:D276  8F 02 FF 75 0A 60            db    8Fh, 2, 0FFh, 75h, 0Ah, 60h
  13843. F000:D27C  E8 93 02 61 C6 06            db    0E8h, 93h, 2, 61h, 0C6h, 6
  13844. F000:D282  8F 02 00                db    8Fh, 2, 0
  13845. F000:D285            loc_1104:
  13846. F000:D285  1F                    pop    ds
  13847. F000:D286  58                    pop    ax
  13848. F000:D287  CD A2                int    0A2h
  13849. F000:D289  CA 0002                retf    2            ; Return far
  13850. F000:D28C            loc_1105:                    ;  xref F000:D2C7, D2E0
  13851. F000:D28C  BA 031B                mov    dx,31Bh
  13852. F000:D28F  B9 0005                mov    cx,5
  13853. F000:D292  E8 01F2                call    sub_213            ; (D487)
  13854. F000:D295  9C                    pushf                ; Push flags
  13855. F000:D296  73 07                jnc    short loc_1106        ; Jump if carry=0
  13856. F000:D298  74 05                jz    short loc_1106        ; Jump if zero
  13857. F000:D29A  80 FC 01                cmp    ah,1
  13858. F000:D29D  75 0B                jne    short loc_1107        ; Jump if not equal
  13859. F000:D29F            loc_1106:                    ;  xref F000:D296, D298
  13860. F000:D29F  BA 031B                mov    dx,31Bh
  13861. F000:D2A2  B9 0005                mov    cx,5
  13862. F000:D2A5  E8 01F4                call    sub_215            ; (D49C)
  13863. F000:D2A8  9D                    popf                ; Pop flags
  13864. F000:D2A9  C3                    retn
  13865. F000:D2AA            loc_1107:                    ;  xref F000:D29D
  13866.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 236
  13867.  
  13868. F000:D2AA  9D                    popf                ; Pop flags
  13869. F000:D2AB  80 FC 49                cmp    ah,49h            ; 'I'
  13870. F000:D2AE  74 19                je    short loc_1110        ; Jump if equal
  13871. F000:D2B0  E8 03BA                call    sub_221            ; (D66D)
  13872. F000:D2B3  8A C6                mov    al,dh
  13873. F000:D2B5  3C 12                cmp    al,12h
  13874. F000:D2B7  75 04                jne    short loc_1108        ; Jump if not equal
  13875. F000:D2B9  B0 01                mov    al,1
  13876. F000:D2BB  EB 05                jmp    short loc_1109        ; (D2C2)
  13877. F000:D2BD            loc_1108:                    ;  xref F000:D2B7
  13878. F000:D2BD  0A C0                or    al,al            ; Zero ?
  13879. F000:D2BF  FE C0                inc    al
  13880. F000:D2C1  27                    daa                ; Decimal adjust
  13881. F000:D2C2            loc_1109:                    ;  xref F000:D2BB
  13882. F000:D2C2  8A F0                mov    dh,al
  13883. F000:D2C4  E8 01F8                call    sub_218            ; (D4BF)
  13884. F000:D2C7  EB C3                jmp    short loc_1105        ; (D28C)
  13885. F000:D2C9            loc_1110:                    ;  xref F000:D2AE
  13886. F000:D2C9  E8 03A1                call    sub_221            ; (D66D)
  13887. F000:D2CC  8A C6                mov    al,dh
  13888. F000:D2CE  3C 01                cmp    al,1
  13889. F000:D2D0  75 04                jne    short loc_1111        ; Jump if not equal
  13890. F000:D2D2  B0 12                mov    al,12h
  13891. F000:D2D4  EB 05                jmp    short loc_1112        ; (D2DB)
  13892. F000:D2D6            loc_1111:                    ;  xref F000:D2D0
  13893. F000:D2D6  0A C0                or    al,al            ; Zero ?
  13894. F000:D2D8  FE C8                dec    al
  13895. F000:D2DA  2F                    das                ; Decimal adjust
  13896. F000:D2DB            loc_1112:                    ;  xref F000:D2D4
  13897. F000:D2DB  8A F0                mov    dh,al
  13898. F000:D2DD  E8 01DF                call    sub_218            ; (D4BF)
  13899. F000:D2E0  EB AA                jmp    short loc_1105        ; (D28C)
  13900. F000:D2E2            loc_1113:                    ;  xref F000:D31D, D336
  13901. F000:D2E2  BA 031F                mov    dx,31Fh
  13902. F000:D2E5  B9 0004                mov    cx,4
  13903. F000:D2E8  E8 019C                call    sub_213            ; (D487)
  13904. F000:D2EB  9C                    pushf                ; Push flags
  13905. F000:D2EC  73 07                jnc    short loc_1114        ; Jump if carry=0
  13906. F000:D2EE  74 05                jz    short loc_1114        ; Jump if zero
  13907. F000:D2F0  80 FC 01                cmp    ah,1
  13908. F000:D2F3  75 0B                jne    short loc_1115        ; Jump if not equal
  13909. F000:D2F5            loc_1114:                    ;  xref F000:D2EC, D2EE
  13910. F000:D2F5  BA 031F                mov    dx,31Fh
  13911. F000:D2F8  B9 0004                mov    cx,4
  13912. F000:D2FB  E8 019E                call    sub_215            ; (D49C)
  13913. F000:D2FE  9D                    popf                ; Pop flags
  13914. F000:D2FF  C3                    retn
  13915. F000:D300            loc_1115:                    ;  xref F000:D2F3
  13916. F000:D300  9D                    popf                ; Pop flags
  13917. F000:D301  80 FC 49                cmp    ah,49h            ; 'I'
  13918. F000:D304  74 19                je    short loc_1118        ; Jump if equal
  13919. F000:D306  E8 0364                call    sub_221            ; (D66D)
  13920. F000:D309  8A C2                mov    al,dl
  13921. F000:D30B  3C 31                cmp    al,31h            ; '1'
  13922. F000:D30D  75 04                jne    short loc_1116        ; Jump if not equal
  13923. F000:D30F  B0 01                mov    al,1
  13924. F000:D311  EB 05                jmp    short loc_1117        ; (D318)
  13925.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 237
  13926.  
  13927. F000:D313            loc_1116:                    ;  xref F000:D30D
  13928. F000:D313  0A C0                or    al,al            ; Zero ?
  13929. F000:D315  FE C0                inc    al
  13930. F000:D317  27                    daa                ; Decimal adjust
  13931. F000:D318            loc_1117:                    ;  xref F000:D311
  13932. F000:D318  8A D0                mov    dl,al
  13933. F000:D31A  E8 01A2                call    sub_218            ; (D4BF)
  13934. F000:D31D  EB C3                jmp    short loc_1113        ; (D2E2)
  13935. F000:D31F            loc_1118:                    ;  xref F000:D304
  13936. F000:D31F  E8 034B                call    sub_221            ; (D66D)
  13937. F000:D322  8A C2                mov    al,dl
  13938. F000:D324  3C 01                cmp    al,1
  13939. F000:D326  75 04                jne    short loc_1119        ; Jump if not equal
  13940. F000:D328  B0 32                mov    al,32h            ; '2'
  13941. F000:D32A  EB 05                jmp    short loc_1120        ; (D331)
  13942. F000:D32C            loc_1119:                    ;  xref F000:D326
  13943. F000:D32C  0A C0                or    al,al            ; Zero ?
  13944. F000:D32E  FE C8                dec    al
  13945. F000:D330  2F                    das                ; Decimal adjust
  13946. F000:D331            loc_1120:                    ;  xref F000:D32A
  13947. F000:D331  8A D0                mov    dl,al
  13948. F000:D333  E8 0184                call    sub_217            ; (D4BA)
  13949. F000:D336  EB AA                jmp    short loc_1113        ; (D2E2)
  13950. F000:D338            loc_1121:                    ;  xref F000:D37B, D39C
  13951. F000:D338  BA 0322                mov    dx,322h
  13952. F000:D33B  B9 0006                mov    cx,6
  13953. F000:D33E  E8 0146                call    sub_213            ; (D487)
  13954. F000:D341  9C                    pushf                ; Push flags
  13955. F000:D342  73 07                jnc    short loc_1122        ; Jump if carry=0
  13956. F000:D344  74 05                jz    short loc_1122        ; Jump if zero
  13957. F000:D346  80 FC 01                cmp    ah,1
  13958. F000:D349  75 0B                jne    short loc_1123        ; Jump if not equal
  13959. F000:D34B            loc_1122:                    ;  xref F000:D342, D344
  13960. F000:D34B  BA 0322                mov    dx,322h
  13961. F000:D34E  B9 0006                mov    cx,6
  13962. F000:D351  E8 0148                call    sub_215            ; (D49C)
  13963. F000:D354  9D                    popf                ; Pop flags
  13964. F000:D355  C3                    retn
  13965. F000:D356            loc_1123:                    ;  xref F000:D349
  13966. F000:D356  9D                    popf                ; Pop flags
  13967. F000:D357  80 FC 49                cmp    ah,49h            ; 'I'
  13968. F000:D35A  74 21                je    short loc_1127        ; Jump if equal
  13969. F000:D35C  E8 030E                call    sub_221            ; (D66D)
  13970. F000:D35F  8B C1                mov    ax,cx
  13971. F000:D361  3D 2099                cmp    ax,2099h
  13972. F000:D364  75 05                jne    short loc_1124        ; Jump if not equal
  13973. F000:D366  B8 1901                mov    ax,1901h
  13974. F000:D369  EB 0B                jmp    short loc_1126        ; (D376)
  13975. F000:D36B            loc_1124:                    ;  xref F000:D364
  13976. F000:D36B  3D 1999                cmp    ax,1999h
  13977. F000:D36E  75 02                jne    short loc_1125        ; Jump if not equal
  13978. F000:D370  B4 20                mov    ah,20h            ; ' '
  13979. F000:D372            loc_1125:                    ;  xref F000:D36E
  13980. F000:D372  0B C0                or    ax,ax            ; Zero ?
  13981. F000:D374  40                    inc    ax
  13982. F000:D375  27                    daa                ; Decimal adjust
  13983. F000:D376            loc_1126:                    ;  xref F000:D369
  13984.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 238
  13985.  
  13986. F000:D376  8B C8                mov    cx,ax
  13987. F000:D378  E8 0144                call    sub_218            ; (D4BF)
  13988. F000:D37B  EB BB                jmp    short loc_1121        ; (D338)
  13989. F000:D37D            loc_1127:                    ;  xref F000:D35A
  13990. F000:D37D  E8 02ED                call    sub_221            ; (D66D)
  13991. F000:D380  8B C1                mov    ax,cx
  13992. F000:D382  3D 1901                cmp    ax,1901h
  13993. F000:D385  75 05                jne    short loc_1128        ; Jump if not equal
  13994. F000:D387  B8 2099                mov    ax,2099h
  13995. F000:D38A  EB 0B                jmp    short loc_1130        ; (D397)
  13996. F000:D38C            loc_1128:                    ;  xref F000:D385
  13997. F000:D38C  3D 2000                cmp    ax,2000h
  13998. F000:D38F  75 02                jne    short loc_1129        ; Jump if not equal
  13999. F000:D391  B4 1A                mov    ah,1Ah
  14000. F000:D393            loc_1129:                    ;  xref F000:D38F
  14001. F000:D393  0B C0                or    ax,ax            ; Zero ?
  14002. F000:D395  48                    dec    ax
  14003. F000:D396  2F                    das                ; Decimal adjust
  14004. F000:D397            loc_1130:                    ;  xref F000:D38A
  14005. F000:D397  8B C8                mov    cx,ax
  14006. F000:D399  E8 0123                call    sub_218            ; (D4BF)
  14007. F000:D39C  EB 9A                jmp    short loc_1121        ; (D338)
  14008. F000:D39E            loc_1131:                    ;  xref F000:D3DD, D3FA
  14009. F000:D39E  BA 0416                mov    dx,416h
  14010. F000:D3A1  B9 0004                mov    cx,4
  14011. F000:D3A4  E8 00E5                call    sub_214            ; (D48C)
  14012. F000:D3A7  9C                    pushf                ; Push flags
  14013. F000:D3A8  73 07                jnc    short loc_1132        ; Jump if carry=0
  14014. F000:D3AA  74 05                jz    short loc_1132        ; Jump if zero
  14015. F000:D3AC  80 FC 01                cmp    ah,1
  14016. F000:D3AF  75 0B                jne    short loc_1133        ; Jump if not equal
  14017. F000:D3B1            loc_1132:                    ;  xref F000:D3A8, D3AA
  14018. F000:D3B1  BA 0416                mov    dx,416h
  14019. F000:D3B4  B9 0004                mov    cx,4
  14020. F000:D3B7  E8 00E2                call    sub_215            ; (D49C)
  14021. F000:D3BA  9D                    popf                ; Pop flags
  14022. F000:D3BB  C3                    retn
  14023. F000:D3BC            loc_1133:                    ;  xref F000:D3AF
  14024. F000:D3BC  9D                    popf                ; Pop flags
  14025. F000:D3BD  80 FC 49                cmp    ah,49h            ; 'I'
  14026. F000:D3C0  74 1D                je    short loc_1136        ; Jump if equal
  14027. F000:D3C2  E8 02E2                call    sub_222            ; (D6A7)
  14028. F000:D3C5  8A C5                mov    al,ch
  14029. F000:D3C7  3C 23                cmp    al,23h            ; '#'
  14030. F000:D3C9  75 04                jne    short loc_1134        ; Jump if not equal
  14031. F000:D3CB  B0 00                mov    al,0
  14032. F000:D3CD  EB 05                jmp    short loc_1135        ; (D3D4)
  14033. F000:D3CF            loc_1134:                    ;  xref F000:D3C9
  14034. F000:D3CF  0A C0                or    al,al            ; Zero ?
  14035. F000:D3D1  FE C0                inc    al
  14036. F000:D3D3  27                    daa                ; Decimal adjust
  14037. F000:D3D4            loc_1135:                    ;  xref F000:D3CD
  14038. F000:D3D4  8A E8                mov    ch,al
  14039. F000:D3D6  B4 03                mov    ah,3
  14040. F000:D3D8  CD 1A                int    1Ah            ; Real time clock   ah=func 03h
  14041.                                         ;  set clock cx=hrs/min, dh=sec
  14042. F000:D3DA  E8 0135                call    sub_219            ; (D512)
  14043.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 239
  14044.  
  14045. F000:D3DD  EB BF                jmp    short loc_1131        ; (D39E)
  14046. F000:D3DF            loc_1136:                    ;  xref F000:D3C0
  14047. F000:D3DF  E8 02C5                call    sub_222            ; (D6A7)
  14048. F000:D3E2  8A C5                mov    al,ch
  14049. F000:D3E4  3C 00                cmp    al,0
  14050. F000:D3E6  75 04                jne    short loc_1137        ; Jump if not equal
  14051. F000:D3E8  B0 23                mov    al,23h            ; '#'
  14052. F000:D3EA  EB 05                jmp    short loc_1138        ; (D3F1)
  14053. F000:D3EC            loc_1137:                    ;  xref F000:D3E6
  14054. F000:D3EC  0A C0                or    al,al            ; Zero ?
  14055. F000:D3EE  FE C8                dec    al
  14056. F000:D3F0  2F                    das                ; Decimal adjust
  14057. F000:D3F1            loc_1138:                    ;  xref F000:D3EA
  14058. F000:D3F1  8A E8                mov    ch,al
  14059. F000:D3F3  B4 03                mov    ah,3
  14060. F000:D3F5  CD 1A                int    1Ah            ; Real time clock   ah=func 03h
  14061.                                         ;  set clock cx=hrs/min, dh=sec
  14062. F000:D3F7  E8 0118                call    sub_219            ; (D512)
  14063. F000:D3FA  EB A2                jmp    short loc_1131        ; (D39E)
  14064. F000:D3FC            loc_1139:                    ;  xref F000:D43B, D458
  14065. F000:D3FC  BA 041B                mov    dx,41Bh
  14066. F000:D3FF  B9 0004                mov    cx,4
  14067. F000:D402  E8 0087                call    sub_214            ; (D48C)
  14068. F000:D405  9C                    pushf                ; Push flags
  14069. F000:D406  73 07                jnc    short loc_1140        ; Jump if carry=0
  14070. F000:D408  74 05                jz    short loc_1140        ; Jump if zero
  14071. F000:D40A  80 FC 01                cmp    ah,1
  14072. F000:D40D  75 0B                jne    short loc_1141        ; Jump if not equal
  14073. F000:D40F            loc_1140:                    ;  xref F000:D406, D408
  14074. F000:D40F  BA 041B                mov    dx,41Bh
  14075. F000:D412  B9 0004                mov    cx,4
  14076. F000:D415  E8 0084                call    sub_215            ; (D49C)
  14077. F000:D418  9D                    popf                ; Pop flags
  14078. F000:D419  C3                    retn
  14079. F000:D41A            loc_1141:                    ;  xref F000:D40D
  14080. F000:D41A  9D                    popf                ; Pop flags
  14081. F000:D41B  80 FC 49                cmp    ah,49h            ; 'I'
  14082. F000:D41E  74 1D                je    short loc_1144        ; Jump if equal
  14083. F000:D420  E8 0284                call    sub_222            ; (D6A7)
  14084. F000:D423  8A C1                mov    al,cl
  14085. F000:D425  3C 59                cmp    al,59h            ; 'Y'
  14086. F000:D427  75 04                jne    short loc_1142        ; Jump if not equal
  14087. F000:D429  B0 00                mov    al,0
  14088. F000:D42B  EB 05                jmp    short loc_1143        ; (D432)
  14089. F000:D42D            loc_1142:                    ;  xref F000:D427
  14090. F000:D42D  0A C0                or    al,al            ; Zero ?
  14091. F000:D42F  FE C0                inc    al
  14092. F000:D431  27                    daa                ; Decimal adjust
  14093. F000:D432            loc_1143:                    ;  xref F000:D42B
  14094. F000:D432  8A C8                mov    cl,al
  14095. F000:D434  B4 03                mov    ah,3
  14096. F000:D436  CD 1A                int    1Ah            ; Real time clock   ah=func 03h
  14097.                                         ;  set clock cx=hrs/min, dh=sec
  14098. F000:D438  E8 00D7                call    sub_219            ; (D512)
  14099. F000:D43B  EB BF                jmp    short loc_1139        ; (D3FC)
  14100. F000:D43D            loc_1144:                    ;  xref F000:D41E
  14101. F000:D43D  E8 0267                call    sub_222            ; (D6A7)
  14102.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 240
  14103.  
  14104. F000:D440  8A C1                mov    al,cl
  14105. F000:D442  3C 00                cmp    al,0
  14106. F000:D444  75 04                jne    short loc_1145        ; Jump if not equal
  14107. F000:D446  B0 59                mov    al,59h            ; 'Y'
  14108. F000:D448  EB 05                jmp    short loc_1146        ; (D44F)
  14109. F000:D44A            loc_1145:                    ;  xref F000:D444
  14110. F000:D44A  0A C0                or    al,al            ; Zero ?
  14111. F000:D44C  FE C8                dec    al
  14112. F000:D44E  2F                    das                ; Decimal adjust
  14113. F000:D44F            loc_1146:                    ;  xref F000:D448
  14114. F000:D44F  8A C8                mov    cl,al
  14115. F000:D451  B4 03                mov    ah,3
  14116. F000:D453  CD 1A                int    1Ah            ; Real time clock   ah=func 03h
  14117.                                         ;  set clock cx=hrs/min, dh=sec
  14118. F000:D455  E8 00BA                call    sub_219            ; (D512)
  14119. F000:D458  EB A2                jmp    short loc_1139        ; (D3FC)
  14120. F000:D45A            loc_1147:                    ;  xref F000:D485
  14121. F000:D45A  BA 0420                mov    dx,420h
  14122. F000:D45D  B9 0004                mov    cx,4
  14123. F000:D460  E8 0029                call    sub_214            ; (D48C)
  14124. F000:D463  9C                    pushf                ; Push flags
  14125. F000:D464  73 07                jnc    short loc_1148        ; Jump if carry=0
  14126. F000:D466  74 05                jz    short loc_1148        ; Jump if zero
  14127. F000:D468  80 FC 01                cmp    ah,1
  14128. F000:D46B  75 0B                jne    short loc_1149        ; Jump if not equal
  14129. F000:D46D            loc_1148:                    ;  xref F000:D464, D466
  14130. F000:D46D  BA 0420                mov    dx,420h
  14131. F000:D470  B9 0004                mov    cx,4
  14132. F000:D473  E8 0026                call    sub_215            ; (D49C)
  14133. F000:D476  9D                    popf                ; Pop flags
  14134. F000:D477  C3                    retn
  14135. F000:D478            loc_1149:                    ;  xref F000:D46B
  14136. F000:D478  9D                    popf                ; Pop flags
  14137. F000:D479  E8 022B                call    sub_222            ; (D6A7)
  14138. F000:D47C  B6 00                mov    dh,0
  14139. F000:D47E  B4 03                mov    ah,3
  14140. F000:D480  CD 1A                int    1Ah            ; Real time clock   ah=func 03h
  14141.                                         ;  set clock cx=hrs/min, dh=sec
  14142. F000:D482  E8 008D                call    sub_219            ; (D512)
  14143. F000:D485  EB D3                jmp    short loc_1147        ; (D45A)
  14144.   
  14145.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14146.                 ;                   SUBROUTINE
  14147.                 ;
  14148.                 ;         Called from:     F000:D292, D2E8, D33E
  14149.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14150.   
  14151.                 sub_213        proc    near
  14152. F000:D487  BE DB65                mov    si,0DB65h
  14153. F000:D48A  EB 03                jmp    short loc_1150        ; (D48F)
  14154.   
  14155.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14156.                 ;
  14157.                 ;         Called from:     F000:D3A4, D402, D460
  14158.   
  14159.                 sub_214:
  14160. F000:D48C  BE DBB8                mov    si,0DBB8h
  14161.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 241
  14162.  
  14163. F000:D48F            loc_1150:                    ;  xref F000:D48A
  14164. F000:D48F  E8 EFF3                call    sub_176            ; (C485)
  14165. F000:D492  BB 0070                mov    bx,70h
  14166. F000:D495  E8 000A                call    sub_216            ; (D4A2)
  14167. F000:D498  E8 F21D                call    sub_183            ; (C6B8)
  14168. F000:D49B  C3                    retn
  14169.                 sub_213        endp
  14170.   
  14171.   
  14172.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14173.                 ;                   SUBROUTINE
  14174.                 ;
  14175.                 ;         Called from:     F000:D2A5, D2FB, D351, D3B7, D415, D473
  14176.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14177.   
  14178.                 sub_215        proc    near
  14179. F000:D49C  E8 EFF1                call    sub_177            ; (C490)
  14180. F000:D49F  BB 0007                mov    bx,7
  14181.   
  14182.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14183.                 ;
  14184.                 ;         Called from:     F000:D495
  14185.   
  14186.                 sub_216:
  14187. F000:D4A2  50                    push    ax
  14188.   
  14189. F000:D4A3            locloop_1151:                    ;  xref F000:D4B6
  14190. F000:D4A3  B4 02                mov    ah,2
  14191. F000:D4A5  CD 10                int    10h            ; Video display   ah=functn 02h
  14192.                                         ;  set cursor location in dx
  14193. F000:D4A7  FE C2                inc    dl
  14194. F000:D4A9  B4 08                mov    ah,8
  14195. F000:D4AB  CD 10                int    10h            ; Video display   ah=functn 08h
  14196.                                         ;  get char al & attrib ah @curs
  14197. F000:D4AD  51                    push    cx
  14198. F000:D4AE  B9 0001                mov    cx,1
  14199. F000:D4B1  B4 09                mov    ah,9
  14200. F000:D4B3  CD 10                int    10h            ; Video display   ah=functn 09h
  14201.                                         ;  set char al & attrib bl @curs
  14202. F000:D4B5  59                    pop    cx
  14203. F000:D4B6  E2 EB                loop    locloop_1151        ; Loop if cx > 0
  14204.   
  14205. F000:D4B8  58                    pop    ax
  14206. F000:D4B9  C3                    retn
  14207.                 sub_215        endp
  14208.   
  14209.   
  14210.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14211.                 ;                   SUBROUTINE
  14212.                 ;
  14213.                 ;         Called from:     F000:D333
  14214.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14215.   
  14216.                 sub_217        proc    near
  14217. F000:D4BA  51                    push    cx
  14218. F000:D4BB  B5 00                mov    ch,0
  14219. F000:D4BD  EB 03                jmp    short loc_1152        ; (D4C2)
  14220.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 242
  14221.  
  14222.   
  14223.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14224.                 ;
  14225.                 ;         Called from:     F000:D2C4, D2DD, D31A, D378, D399
  14226.   
  14227.                 sub_218:
  14228. F000:D4BF  51                    push    cx
  14229. F000:D4C0  B5 01                mov    ch,1
  14230. F000:D4C2            loc_1152:                    ;  xref F000:D4BD
  14231. F000:D4C2  80 FE 02                cmp    dh,2
  14232. F000:D4C5  74 1B                je    short loc_1156        ; Jump if equal
  14233. F000:D4C7  80 FE 08                cmp    dh,8
  14234. F000:D4CA  73 0B                jae    short loc_1154        ; Jump if above or =
  14235. F000:D4CC  F6 C6 01                test    dh,1
  14236. F000:D4CF  75 0B                jnz    short loc_1155        ; Jump if not zero
  14237. F000:D4D1            loc_1153:                    ;  xref F000:D4DA
  14238. F000:D4D1  B0 30                mov    al,30h            ; '0'
  14239. F000:D4D3  3A D0                cmp    dl,al
  14240. F000:D4D5  EB 29                jmp    short loc_1158        ; (D500)
  14241. F000:D4D7            loc_1154:                    ;  xref F000:D4CA
  14242. F000:D4D7  F6 C6 01                test    dh,1
  14243. F000:D4DA  75 F5                jnz    loc_1153        ; Jump if not zero
  14244. F000:D4DC            loc_1155:                    ;  xref F000:D4CF
  14245. F000:D4DC  B0 31                mov    al,31h            ; '1'
  14246. F000:D4DE  3A D0                cmp    dl,al
  14247. F000:D4E0  EB 1E                jmp    short loc_1158        ; (D500)
  14248. F000:D4E2            loc_1156:                    ;  xref F000:D4C5
  14249. F000:D4E2  8A C1                mov    al,cl
  14250. F000:D4E4  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  14251. F000:D4E7  B4 0A                mov    ah,0Ah
  14252. F000:D4E9  F6 E4                mul    ah            ; ax = reg * al
  14253. F000:D4EB  8A E1                mov    ah,cl
  14254. F000:D4ED  80 E4 0F                and    ah,0Fh
  14255. F000:D4F0  02 C4                add    al,ah
  14256. F000:D4F2  A8 03                test    al,3
  14257. F000:D4F4  74 06                jz    short loc_1157        ; Jump if zero
  14258. F000:D4F6  B0 28                mov    al,28h            ; '('
  14259. F000:D4F8  3A D0                cmp    dl,al
  14260. F000:D4FA  EB 04                jmp    short loc_1158        ; (D500)
  14261. F000:D4FC            loc_1157:                    ;  xref F000:D4F4
  14262. F000:D4FC  B0 29                mov    al,29h            ; ')'
  14263. F000:D4FE  3A D0                cmp    dl,al
  14264. F000:D500            loc_1158:                    ;  xref F000:D4D5, D4E0, D4FA
  14265. F000:D500  76 08                jbe    short loc_1160        ; Jump if below or =
  14266. F000:D502  0A ED                or    ch,ch            ; Zero ?
  14267. F000:D504  74 02                jz    short loc_1159        ; Jump if zero
  14268. F000:D506  B0 01                mov    al,1
  14269. F000:D508            loc_1159:                    ;  xref F000:D504
  14270. F000:D508  8A D0                mov    dl,al
  14271. F000:D50A            loc_1160:                    ;  xref F000:D500
  14272. F000:D50A  59                    pop    cx
  14273. F000:D50B  B4 05                mov    ah,5
  14274. F000:D50D  CD 1A                int    1Ah            ; Real time clock   ah=func 05h
  14275.                                         ;  set date  cx=year, dx=mon/day
  14276. F000:D50F  EB 01                jmp    short loc_1161        ; (D512)
  14277. F000:D511  90                    db    90h
  14278.   
  14279.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 243
  14280.  
  14281.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14282.                 ;
  14283.                 ;         Called from:     F000:D3DA, D3F7, D438, D455, D482
  14284.   
  14285.                 sub_219:
  14286. F000:D512            loc_1161:                    ;  xref F000:D50F
  14287. F000:D512  55                    push    bp
  14288. F000:D513  83 EC 0A                sub    sp,0Ah
  14289. F000:D516  8B EC                mov    bp,sp
  14290. F000:D518  B4 03                mov    ah,3
  14291. F000:D51A  B7 00                mov    bh,0
  14292. F000:D51C  CD 10                int    10h            ; Video display   ah=functn 03h
  14293.                                         ;  get cursor loc in dx, mode cx
  14294. F000:D51E  52                    push    dx
  14295. F000:D51F  51                    push    cx
  14296. F000:D520  80 E5 9F                and    ch,9Fh
  14297. F000:D523  80 CD 20                or    ch,20h            ; ' '
  14298. F000:D526  B4 01                mov    ah,1
  14299. F000:D528  CD 10                int    10h            ; Video display   ah=functn 01h
  14300.                                         ;  set cursor mode in cx
  14301. F000:D52A  E8 0140                call    sub_221            ; (D66D)
  14302. F000:D52D  89 4E 00                mov    [bp],cx
  14303. F000:D530  89 56 02                mov    [bp+2],dx
  14304. F000:D533  8B 46 00                mov    ax,[bp]
  14305. F000:D536  E8 027E                call    sub_232            ; (D7B7)
  14306. F000:D539  89 46 04                mov    [bp+4],ax
  14307. F000:D53C  2D 0769                sub    ax,769h
  14308. F000:D53F  50                    push    ax
  14309. F000:D540  C1 E8 02                shr    ax,2            ; Shift w/zeros fill
  14310. F000:D543  B9 0007                mov    cx,7
  14311. F000:D546  99                    cwd                ; Word to double word
  14312. F000:D547  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  14313. F000:D549  8B DA                mov    bx,dx
  14314. F000:D54B  2E: 8A 9F D09A            mov    bl,cs:data_132[bx]    ; (F000:D09A=4)
  14315. F000:D550  58                    pop    ax
  14316. F000:D551  24 03                and    al,3
  14317. F000:D553  02 D8                add    bl,al
  14318. F000:D555  80 FB 06                cmp    bl,6
  14319. F000:D558  76 03                jbe    short loc_1162        ; Jump if below or =
  14320. F000:D55A  80 EB 07                sub    bl,7
  14321. F000:D55D            loc_1162:                    ;  xref F000:D558
  14322. F000:D55D  8A 46 02                mov    al,[bp+2]
  14323. F000:D560  98                    cbw                ; Convrt byte to word
  14324. F000:D561  E8 0253                call    sub_232            ; (D7B7)
  14325. F000:D564  88 46 06                mov    [bp+6],al
  14326. F000:D567  48                    dec    ax
  14327. F000:D568  50                    push    ax
  14328. F000:D569  8A 46 03                mov    al,[bp+3]
  14329. F000:D56C  98                    cbw                ; Convrt byte to word
  14330. F000:D56D  E8 0247                call    sub_232            ; (D7B7)
  14331. F000:D570  88 46 07                mov    [bp+7],al
  14332. F000:D573  48                    dec    ax
  14333. F000:D574  59                    pop    cx
  14334. F000:D575  3C 01                cmp    al,1
  14335. F000:D577  76 07                jbe    short loc_1163        ; Jump if below or =
  14336. F000:D579  F6 46 04 03                test    byte ptr [bp+4],3
  14337. F000:D57D  75 01                jnz    short loc_1163        ; Jump if not zero
  14338.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 244
  14339.  
  14340. F000:D57F  41                    inc    cx
  14341. F000:D580            loc_1163:                    ;  xref F000:D577, D57D
  14342. F000:D580  86 D8                xchg    bl,al
  14343. F000:D582  32 FF                xor    bh,bh            ; Zero register
  14344. F000:D584  2E: 8A 9F D0A1            mov    bl,cs:data_133[bx]    ; (F000:D0A1=0)
  14345. F000:D589  02 C3                add    al,bl
  14346. F000:D58B  3C 06                cmp    al,6
  14347. F000:D58D  76 02                jbe    short loc_1164        ; Jump if below or =
  14348. F000:D58F  2C 07                sub    al,7
  14349. F000:D591            loc_1164:                    ;  xref F000:D58D
  14350. F000:D591  86 C1                xchg    al,cl
  14351. F000:D593  B2 07                mov    dl,7
  14352. F000:D595  F6 F2                div    dl            ; al, ah rem = ax/reg
  14353. F000:D597  8A C4                mov    al,ah
  14354. F000:D599  02 C1                add    al,cl
  14355. F000:D59B  3C 06                cmp    al,6
  14356. F000:D59D  76 02                jbe    short loc_1165        ; Jump if below or =
  14357. F000:D59F  2C 07                sub    al,7
  14358. F000:D5A1            loc_1165:                    ;  xref F000:D59D
  14359. F000:D5A1  88 46 08                mov    [bp+8],al
  14360. F000:D5A4  BA 0317                mov    dx,317h
  14361. F000:D5A7  8A 46 08                mov    al,[bp+8]
  14362. F000:D5AA  BE DE9B                mov    si,0DE9Bh
  14363. F000:D5AD  E8 01BB                call    sub_228            ; (D76B)
  14364. F000:D5B0  B8 0E2C                mov    ax,0E2Ch
  14365. F000:D5B3  CD 10                int    10h            ; Video display   ah=functn 0Eh
  14366.                                         ;  write char al, teletype mode
  14367. F000:D5B5  BA 031C                mov    dx,31Ch
  14368. F000:D5B8  8A 46 07                mov    al,[bp+7]
  14369. F000:D5BB  48                    dec    ax
  14370. F000:D5BC  BE DEB7                mov    si,0DEB7h
  14371. F000:D5BF  E8 01A9                call    sub_228            ; (D76B)
  14372. F000:D5C2  BA 0320                mov    dx,320h
  14373. F000:D5C5  8A 46 02                mov    al,[bp+2]
  14374. F000:D5C8  E8 01BA                call    sub_229            ; (D785)
  14375. F000:D5CB  BA 0323                mov    dx,323h
  14376. F000:D5CE  8A 46 01                mov    al,[bp+1]
  14377. F000:D5D1  E8 01B1                call    sub_229            ; (D785)
  14378. F000:D5D4  BA 0325                mov    dx,325h
  14379. F000:D5D7  8A 46 00                mov    al,[bp]
  14380. F000:D5DA  E8 01A8                call    sub_229            ; (D785)
  14381. F000:D5DD  8A 46 07                mov    al,[bp+7]
  14382. F000:D5E0  BF 0020                mov    di,20h
  14383. F000:D5E3  FE C8                dec    al
  14384. F000:D5E5  74 03                jz    short loc_1166        ; Jump if zero
  14385. F000:D5E7  E8 00E7                call    sub_223            ; (D6D1)
  14386. F000:D5EA            loc_1166:                    ;  xref F000:D5E5
  14387. F000:D5EA  8A 46 06                mov    al,[bp+6]
  14388. F000:D5ED  FE C8                dec    al
  14389. F000:D5EF  98                    cbw                ; Convrt byte to word
  14390. F000:D5F0  B1 07                mov    cl,7
  14391. F000:D5F2  F6 F1                div    cl            ; al, ah rem = ax/reg
  14392. F000:D5F4  8A 46 08                mov    al,[bp+8]
  14393. F000:D5F7  2A C4                sub    al,ah
  14394. F000:D5F9  79 02                jns    short loc_1167        ; Jump if not sign
  14395. F000:D5FB  04 07                add    al,7
  14396. F000:D5FD            loc_1167:                    ;  xref F000:D5F9
  14397.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 245
  14398.  
  14399. F000:D5FD  32 E4                xor    ah,ah            ; Zero register
  14400. F000:D5FF  8B F7                mov    si,di
  14401. F000:D601  2B F0                sub    si,ax
  14402. F000:D603  BA 0D34                mov    dx,0D34h
  14403. F000:D606  BB 0007                mov    bx,7
  14404. F000:D609  B4 02                mov    ah,2
  14405. F000:D60B  CD 10                int    10h            ; Video display   ah=functn 02h
  14406.                                         ;  set cursor location in dx
  14407. F000:D60D  E8 00EE                call    sub_224            ; (D6FE)
  14408. F000:D610  8A 46 07                mov    al,[bp+7]
  14409. F000:D613  E8 00BB                call    sub_223            ; (D6D1)
  14410. F000:D616  BE 0001                mov    si,1
  14411. F000:D619  B3 0F                mov    bl,0Fh
  14412. F000:D61B  E8 00E0                call    sub_224            ; (D6FE)
  14413. F000:D61E  BE 0001                mov    si,1
  14414. F000:D621  BF 000F                mov    di,0Fh
  14415. F000:D624  B3 07                mov    bl,7
  14416. F000:D626  E8 00D5                call    sub_224            ; (D6FE)
  14417. F000:D629  E8 007B                call    sub_222            ; (D6A7)
  14418. F000:D62C  52                    push    dx
  14419. F000:D62D  51                    push    cx
  14420. F000:D62E  8A C5                mov    al,ch
  14421. F000:D630  BA 0417                mov    dx,417h
  14422. F000:D633  E8 014F                call    sub_229            ; (D785)
  14423. F000:D636  E8 0024                call    sub_220            ; (D65D)
  14424. F000:D639  58                    pop    ax
  14425. F000:D63A  BA 041C                mov    dx,41Ch
  14426. F000:D63D  E8 0145                call    sub_229            ; (D785)
  14427. F000:D640  E8 001A                call    sub_220            ; (D65D)
  14428. F000:D643  58                    pop    ax
  14429. F000:D644  8A C4                mov    al,ah
  14430. F000:D646  BA 0421                mov    dx,421h
  14431. F000:D649  E8 0139                call    sub_229            ; (D785)
  14432. F000:D64C  59                    pop    cx
  14433. F000:D64D  5A                    pop    dx
  14434. F000:D64E  B7 00                mov    bh,0
  14435. F000:D650  B4 02                mov    ah,2
  14436. F000:D652  CD 10                int    10h            ; Video display   ah=functn 02h
  14437.                                         ;  set cursor location in dx
  14438. F000:D654  B4 01                mov    ah,1
  14439. F000:D656  CD 10                int    10h            ; Video display   ah=functn 01h
  14440.                                         ;  set cursor mode in cx
  14441. F000:D658  83 C4 0A                add    sp,0Ah
  14442. F000:D65B  5D                    pop    bp
  14443. F000:D65C  C3                    retn
  14444.                 sub_217        endp
  14445.   
  14446.   
  14447.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14448.                 ;                   SUBROUTINE
  14449.                 ;
  14450.                 ;         Called from:     F000:D636, D640
  14451.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14452.   
  14453.                 sub_220        proc    near
  14454. F000:D65D  B8 0E20                mov    ax,0E20h
  14455. F000:D660  CD 10                int    10h            ; Video display   ah=functn 0Eh
  14456.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 246
  14457.  
  14458.                                         ;  write char al, teletype mode
  14459. F000:D662  B8 0E3A                mov    ax,0E3Ah
  14460. F000:D665  CD 10                int    10h            ; Video display   ah=functn 0Eh
  14461.                                         ;  write char al, teletype mode
  14462. F000:D667  B8 0E20                mov    ax,0E20h
  14463. F000:D66A  CD 10                int    10h            ; Video display   ah=functn 0Eh
  14464.                                         ;  write char al, teletype mode
  14465. F000:D66C  C3                    retn
  14466.                 sub_220        endp
  14467.   
  14468.   
  14469.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14470.                 ;                   SUBROUTINE
  14471.                 ;
  14472.                 ;         Called from:     F000:BE33, D2B0, D2C9, D306, D31F, D35C, D37D
  14473.                 ;                  D52A
  14474.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14475.   
  14476.                 sub_221        proc    near
  14477. F000:D66D  B4 04                mov    ah,4
  14478. F000:D66F  CD 1A                int    1Ah            ; Real time clock   ah=func 04h
  14479.                                         ;  read date cx=year, dx=mon/day
  14480. F000:D671  73 04                jnc    short loc_1168        ; Jump if carry=0
  14481. F000:D673  B4 04                mov    ah,4
  14482. F000:D675  CD 1A                int    1Ah            ; Real time clock   ah=func 04h
  14483.                                         ;  read date cx=year, dx=mon/day
  14484. F000:D677            loc_1168:                    ;  xref F000:D671
  14485. F000:D677  8B C1                mov    ax,cx
  14486. F000:D679  E8 0120                call    sub_231            ; (D79C)
  14487. F000:D67C  73 22                jnc    short loc_1169        ; Jump if carry=0
  14488. F000:D67E  3D 1901                cmp    ax,1901h
  14489. F000:D681  72 1D                jb    short loc_1169        ; Jump if below
  14490. F000:D683  3D 2099                cmp    ax,2099h
  14491. F000:D686  77 18                ja    short loc_1169        ; Jump if above
  14492. F000:D688  8B C2                mov    ax,dx
  14493. F000:D68A  E8 010F                call    sub_231            ; (D79C)
  14494. F000:D68D  73 11                jnc    short loc_1169        ; Jump if carry=0
  14495. F000:D68F  0A C0                or    al,al            ; Zero ?
  14496. F000:D691  74 0D                jz    short loc_1169        ; Jump if zero
  14497. F000:D693  0A E4                or    ah,ah            ; Zero ?
  14498. F000:D695  74 09                jz    short loc_1169        ; Jump if zero
  14499. F000:D697  80 FC 12                cmp    ah,12h
  14500. F000:D69A  77 04                ja    short loc_1169        ; Jump if above
  14501. F000:D69C  3C 31                cmp    al,31h            ; '1'
  14502. F000:D69E  76 06                jbe    short loc_ret_1170    ; Jump if below or =
  14503. F000:D6A0            loc_1169:                    ;  xref F000:D67C, D681, D686, D68D
  14504.                                         ;            D691, D695, D69A
  14505. F000:D6A0  B9 1980                mov    cx,1980h
  14506. F000:D6A3  BA 0101                mov    dx,101h
  14507.   
  14508. F000:D6A6            loc_ret_1170:                    ;  xref F000:D69E
  14509. F000:D6A6  C3                    retn
  14510.                 sub_221        endp
  14511.   
  14512.   
  14513.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14514.                 ;                   SUBROUTINE
  14515.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 247
  14516.  
  14517.                 ;
  14518.                 ;         Called from:     F000:BE3A, D3C2, D3DF, D420, D43D, D479, D629
  14519.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14520.   
  14521.                 sub_222        proc    near
  14522. F000:D6A7  B4 02                mov    ah,2
  14523. F000:D6A9  CD 1A                int    1Ah            ; Real time clock   ah=func 02h
  14524.                                         ;  read clock cx=hrs/min, dh=sec
  14525. F000:D6AB  73 04                jnc    short loc_1171        ; Jump if carry=0
  14526. F000:D6AD  B4 02                mov    ah,2
  14527. F000:D6AF  CD 1A                int    1Ah            ; Real time clock   ah=func 02h
  14528.                                         ;  read clock cx=hrs/min, dh=sec
  14529. F000:D6B1            loc_1171:                    ;  xref F000:D6AB
  14530. F000:D6B1  8B C1                mov    ax,cx
  14531. F000:D6B3  E8 00E6                call    sub_231            ; (D79C)
  14532. F000:D6B6  73 14                jnc    short loc_1172        ; Jump if carry=0
  14533. F000:D6B8  80 FC 23                cmp    ah,23h            ; '#'
  14534. F000:D6BB  77 0F                ja    short loc_1172        ; Jump if above
  14535. F000:D6BD  3C 59                cmp    al,59h            ; 'Y'
  14536. F000:D6BF  77 0B                ja    short loc_1172        ; Jump if above
  14537. F000:D6C1  8A C6                mov    al,dh
  14538. F000:D6C3  E8 00D6                call    sub_231            ; (D79C)
  14539. F000:D6C6  73 04                jnc    short loc_1172        ; Jump if carry=0
  14540. F000:D6C8  3C 59                cmp    al,59h            ; 'Y'
  14541. F000:D6CA  76 04                jbe    short loc_ret_1173    ; Jump if below or =
  14542. F000:D6CC            loc_1172:                    ;  xref F000:D6B6, D6BB, D6BF, D6C6
  14543. F000:D6CC  33 C9                xor    cx,cx            ; Zero register
  14544. F000:D6CE  33 D2                xor    dx,dx            ; Zero register
  14545.   
  14546. F000:D6D0            loc_ret_1173:                    ;  xref F000:D6CA
  14547. F000:D6D0  C3                    retn
  14548.                 sub_222        endp
  14549.   
  14550.   
  14551.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14552.                 ;                   SUBROUTINE
  14553.                 ;
  14554.                 ;         Called from:     F000:D5E7, D613
  14555.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14556.   
  14557.                 sub_223        proc    near
  14558. F000:D6D1  3C 02                cmp    al,2
  14559. F000:D6D3  75 0C                jne    short loc_1174        ; Jump if not equal
  14560. F000:D6D5  B4 1C                mov    ah,1Ch
  14561. F000:D6D7  F6 46 04 03                test    byte ptr [bp+4],3
  14562. F000:D6DB  75 18                jnz    short loc_1176        ; Jump if not zero
  14563. F000:D6DD  FE C4                inc    ah
  14564. F000:D6DF  EB 14                jmp    short loc_1176        ; (D6F5)
  14565. F000:D6E1            loc_1174:                    ;  xref F000:D6D3
  14566. F000:D6E1  B4 1F                mov    ah,1Fh
  14567. F000:D6E3  3C 08                cmp    al,8
  14568. F000:D6E5  73 08                jae    short loc_1175        ; Jump if above or =
  14569. F000:D6E7  A8 01                test    al,1
  14570. F000:D6E9  75 0A                jnz    short loc_1176        ; Jump if not zero
  14571. F000:D6EB  FE CC                dec    ah
  14572. F000:D6ED  EB 06                jmp    short loc_1176        ; (D6F5)
  14573. F000:D6EF            loc_1175:                    ;  xref F000:D6E5
  14574.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 248
  14575.  
  14576. F000:D6EF  A8 01                test    al,1
  14577. F000:D6F1  74 02                jz    short loc_1176        ; Jump if zero
  14578. F000:D6F3  FE CC                dec    ah
  14579. F000:D6F5            loc_1176:                    ;  xref F000:D6DB, D6DF, D6E9, D6ED
  14580.                                         ;            D6F1
  14581. F000:D6F5  FE C4                inc    ah
  14582. F000:D6F7  32 C0                xor    al,al            ; Zero register
  14583. F000:D6F9  86 C4                xchg    al,ah
  14584. F000:D6FB  8B F8                mov    di,ax
  14585. F000:D6FD  C3                    retn
  14586.                 sub_223        endp
  14587.   
  14588.   
  14589.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14590.                 ;                   SUBROUTINE
  14591.                 ;
  14592.                 ;         Called from:     F000:D60D, D61B, D626
  14593.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14594.   
  14595.                 sub_224        proc    near
  14596. F000:D6FE            loc_1177:                    ;  xref F000:D732
  14597. F000:D6FE  3B F7                cmp    si,di
  14598. F000:D700  74 37                je    short loc_ret_1182    ; Jump if equal
  14599. F000:D702  8B C6                mov    ax,si
  14600. F000:D704  3A 46 06                cmp    al,[bp+6]
  14601. F000:D707  75 0E                jne    short loc_1178        ; Jump if not equal
  14602. F000:D709  80 FB 0F                cmp    bl,0Fh
  14603. F000:D70C  75 09                jne    short loc_1178        ; Jump if not equal
  14604. F000:D70E  53                    push    bx
  14605. F000:D70F  B3 8F                mov    bl,8Fh
  14606. F000:D711  E8 0026                call    sub_225            ; (D73A)
  14607. F000:D714  5B                    pop    bx
  14608. F000:D715  EB 03                jmp    short loc_1179        ; (D71A)
  14609. F000:D717            loc_1178:                    ;  xref F000:D707, D70C
  14610. F000:D717  E8 0020                call    sub_225            ; (D73A)
  14611. F000:D71A            loc_1179:                    ;  xref F000:D715
  14612. F000:D71A  46                    inc    si
  14613. F000:D71B  B4 03                mov    ah,3
  14614. F000:D71D  CD 10                int    10h            ; Video display   ah=functn 03h
  14615.                                         ;  get cursor loc in dx, mode cx
  14616. F000:D71F  80 FA 4E                cmp    dl,4Eh            ; 'N'
  14617. F000:D722  75 10                jne    short loc_1181        ; Jump if not equal
  14618. F000:D724  80 C6 02                add    dh,2
  14619. F000:D727  80 FE 19                cmp    dh,19h
  14620. F000:D72A  74 0D                je    short loc_ret_1182    ; Jump if equal
  14621. F000:D72C  B2 34                mov    dl,34h            ; '4'
  14622. F000:D72E            loc_1180:                    ;  xref F000:D737
  14623. F000:D72E  B4 02                mov    ah,2
  14624. F000:D730  CD 10                int    10h            ; Video display   ah=functn 02h
  14625.                                         ;  set cursor location in dx
  14626. F000:D732  EB CA                jmp    short loc_1177        ; (D6FE)
  14627. F000:D734            loc_1181:                    ;  xref F000:D722
  14628. F000:D734  80 C2 02                add    dl,2
  14629. F000:D737  EB F5                jmp    short loc_1180        ; (D72E)
  14630.   
  14631. F000:D739            loc_ret_1182:                    ;  xref F000:D700, D72A
  14632. F000:D739  C3                    retn
  14633.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 249
  14634.  
  14635.                 sub_224        endp
  14636.   
  14637.   
  14638.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14639.                 ;                   SUBROUTINE
  14640.                 ;
  14641.                 ;         Called from:     F000:D711, D717
  14642.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14643.   
  14644.                 sub_225        proc    near
  14645. F000:D73A  3C 09                cmp    al,9
  14646. F000:D73C  77 07                ja    short loc_1183        ; Jump if above
  14647. F000:D73E  50                    push    ax
  14648. F000:D73F  B0 20                mov    al,20h            ; ' '
  14649. F000:D741  E8 0015                call    sub_227            ; (D759)
  14650. F000:D744  58                    pop    ax
  14651.   
  14652.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14653.                 ;
  14654.                 ;         Called from:     F000:D751
  14655.   
  14656.                 sub_226:
  14657. F000:D745            loc_1183:                    ;  xref F000:D73C
  14658. F000:D745  98                    cbw                ; Convrt byte to word
  14659. F000:D746  99                    cwd                ; Word to double word
  14660. F000:D747  B9 000A                mov    cx,0Ah
  14661. F000:D74A  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  14662. F000:D74C  0B C0                or    ax,ax            ; Zero ?
  14663. F000:D74E  74 05                jz    short loc_1184        ; Jump if zero
  14664. F000:D750  52                    push    dx
  14665. F000:D751  E8 FFF1                call    sub_226            ; (D745)
  14666. F000:D754  5A                    pop    dx
  14667. F000:D755            loc_1184:                    ;  xref F000:D74E
  14668. F000:D755  8A C2                mov    al,dl
  14669. F000:D757  0C 30                or    al,30h            ; '0'
  14670.   
  14671.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14672.                 ;
  14673.                 ;         Called from:     F000:D741
  14674.   
  14675.                 sub_227:
  14676. F000:D759  B4 09                mov    ah,9
  14677. F000:D75B  B9 0001                mov    cx,1
  14678. F000:D75E  CD 10                int    10h            ; Video display   ah=functn 09h
  14679.                                         ;  set char al & attrib bl @curs
  14680. F000:D760  B4 03                mov    ah,3
  14681. F000:D762  CD 10                int    10h            ; Video display   ah=functn 03h
  14682.                                         ;  get cursor loc in dx, mode cx
  14683. F000:D764  FE C2                inc    dl
  14684. F000:D766  B4 02                mov    ah,2
  14685. F000:D768  CD 10                int    10h            ; Video display   ah=functn 02h
  14686.                                         ;  set cursor location in dx
  14687. F000:D76A  C3                    retn
  14688.                 sub_225        endp
  14689.   
  14690.   
  14691.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14692.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 250
  14693.  
  14694.                 ;                   SUBROUTINE
  14695.                 ;
  14696.                 ;         Called from:     F000:D5AD, D5BF
  14697.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14698.   
  14699.                 sub_228        proc    near
  14700. F000:D76B  50                    push    ax
  14701. F000:D76C  B4 02                mov    ah,2
  14702. F000:D76E  CD 10                int    10h            ; Video display   ah=functn 02h
  14703.                                         ;  set cursor location in dx
  14704. F000:D770  58                    pop    ax
  14705. F000:D771  B4 04                mov    ah,4
  14706. F000:D773  F6 E4                mul    ah            ; ax = reg * al
  14707. F000:D775  03 F0                add    si,ax
  14708. F000:D777  B9 0003                mov    cx,3
  14709.   
  14710. F000:D77A            locloop_1185:                    ;  xref F000:D782
  14711. F000:D77A  2E: 8A 04                mov    al,cs:[si]
  14712. F000:D77D  46                    inc    si
  14713. F000:D77E  B4 0E                mov    ah,0Eh
  14714. F000:D780  CD 10                int    10h            ; Video display   ah=functn 0Eh
  14715.                                         ;  write char al, teletype mode
  14716. F000:D782  E2 F6                loop    locloop_1185        ; Loop if cx > 0
  14717.   
  14718. F000:D784  C3                    retn
  14719.                 sub_228        endp
  14720.   
  14721.   
  14722.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14723.                 ;                   SUBROUTINE
  14724.                 ;
  14725.                 ;         Called from:     F000:D5C8, D5D1, D5DA, D633, D63D, D649
  14726.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14727.   
  14728.                 sub_229        proc    near
  14729. F000:D785  50                    push    ax
  14730. F000:D786  B4 02                mov    ah,2
  14731. F000:D788  CD 10                int    10h            ; Video display   ah=functn 02h
  14732.                                         ;  set cursor location in dx
  14733. F000:D78A  58                    pop    ax
  14734. F000:D78B  50                    push    ax
  14735. F000:D78C  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  14736. F000:D78F  E8 0001                call    sub_230            ; (D793)
  14737. F000:D792  58                    pop    ax
  14738.   
  14739.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14740.                 ;
  14741.                 ;         Called from:     F000:D78F
  14742.   
  14743.                 sub_230:
  14744. F000:D793  25 000F                and    ax,0Fh
  14745. F000:D796  0D 0E30                or    ax,0E30h
  14746. F000:D799  CD 10                int    10h            ; Video display   ah=functn 0Eh
  14747.                                         ;  write char al, teletype mode
  14748. F000:D79B  C3                    retn
  14749.                 sub_229        endp
  14750.   
  14751.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 251
  14752.  
  14753.   
  14754.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14755.                 ;                   SUBROUTINE
  14756.                 ;
  14757.                 ;         Called from:     F000:D679, D68A, D6B3, D6C3
  14758.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14759.   
  14760.                 sub_231        proc    near
  14761. F000:D79C  50                    push    ax
  14762. F000:D79D  25 0F0F                and    ax,0F0Fh
  14763. F000:D7A0  3C 0A                cmp    al,0Ah
  14764. F000:D7A2  73 11                jae    short loc_1186        ; Jump if above or =
  14765. F000:D7A4  80 FC 0A                cmp    ah,0Ah
  14766. F000:D7A7  73 0C                jae    short loc_1186        ; Jump if above or =
  14767. F000:D7A9  58                    pop    ax
  14768. F000:D7AA  50                    push    ax
  14769. F000:D7AB  25 F0F0                and    ax,0F0F0h
  14770. F000:D7AE  3C A0                cmp    al,0A0h
  14771. F000:D7B0  73 03                jae    short loc_1186        ; Jump if above or =
  14772. F000:D7B2  80 FC A0                cmp    ah,0A0h
  14773. F000:D7B5            loc_1186:                    ;  xref F000:D7A2, D7A7, D7B0
  14774. F000:D7B5  58                    pop    ax
  14775. F000:D7B6  C3                    retn
  14776.                 sub_231        endp
  14777.   
  14778.   
  14779.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14780.                 ;                   SUBROUTINE
  14781.                 ;
  14782.                 ;         Called from:     F000:D536, D561, D56D
  14783.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14784.   
  14785.                 sub_232        proc    near
  14786. F000:D7B7  50                    push    ax
  14787. F000:D7B8  B9 0064                mov    cx,64h
  14788. F000:D7BB  8A C4                mov    al,ah
  14789. F000:D7BD  C0 EC 04                shr    ah,4            ; Shift w/zeros fill
  14790. F000:D7C0  24 0F                and    al,0Fh
  14791. F000:D7C2  D5 0A                aad                ; Ascii adjust
  14792. F000:D7C4  F7 E1                mul    cx            ; dx:ax = reg * ax
  14793. F000:D7C6  8B D0                mov    dx,ax
  14794. F000:D7C8  58                    pop    ax
  14795. F000:D7C9  8A E0                mov    ah,al
  14796. F000:D7CB  C0 EC 04                shr    ah,4            ; Shift w/zeros fill
  14797. F000:D7CE  24 0F                and    al,0Fh
  14798. F000:D7D0  D5 0A                aad                ; Ascii adjust
  14799. F000:D7D2  03 C2                add    ax,dx
  14800. F000:D7D4  C3                    retn
  14801.                 sub_232        endp
  14802.   
  14803. F000:D7D5  00                    db    0
  14804. F000:D7D6  52 4F 4D 2D 42 49            db    'ROM-BIOS CHECKSUM ERROR', 0Dh, 0Ah
  14805. F000:D7DC  4F 53 20 43 48 45
  14806. F000:D7E2  43 4B 53 55 4D 20
  14807. F000:D7E8  45 52 52 4F 52 0D
  14808. F000:D7EE  0A
  14809. F000:D7EF  43 48 45 43 4B 20            db    'CHECK ROM (27256)?'
  14810.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 252
  14811.  
  14812. F000:D7F5  52 4F 4D 20 28 32
  14813. F000:D7FB  37 32 35 36 29 3F
  14814. F000:D801  00                    db    0
  14815. F000:D802  0D 0A 53 59 53 54            db    0Dh, 0Ah, 'SYSTEM HALTED'
  14816. F000:D808  45 4D 20 48 41 4C
  14817. F000:D80E  54 45 44
  14818. F000:D811  00 0D 1E                db    0, 0Dh, 1Eh
  14819. F000:D814  20 52 55 4E 20 58            db    ' RUN XCMOS SETUP '
  14820. F000:D81A  43 4D 4F 53 20 53
  14821. F000:D820  45 54 55 50 20
  14822. F000:D825  00 02 0C 1E                db    0, 2, 0Ch, 1Eh
  14823. F000:D829  20 52 55 4E 20 43            db    ' RUN CMOS SETUP '
  14824. F000:D82F  4D 4F 53 20 53 45
  14825. F000:D835  54 55 50 20
  14826. F000:D839  00 01 0B 1E                db    0, 1, 0Bh, 1Eh
  14827. F000:D83D  20 45 58 49 54 20            db    ' EXIT FOR BOOT '
  14828. F000:D843  46 4F 52 20 42 4F
  14829. F000:D849  4F 54 20
  14830. F000:D84C  00 00 01 01                db    0, 0, 1, 1
  14831. F000:D850  20 20 20 20 20 20            db    '         CMOS SETUP (C) Copyrigh'
  14832. F000:D856  20 20 20 43 4D 4F
  14833. F000:D85C  53 20 53 45 54 55
  14834. F000:D862  50 20 28 43 29 20
  14835. F000:D868  43 6F 70 79 72 69
  14836. F000:D86E  67 68
  14837. F000:D870  74 20 31 39 38 35            db    't 1985-1990, American Megatrends'
  14838. F000:D876  2D 31 39 39 30 2C
  14839. F000:D87C  20 41 6D 65 72 69
  14840. F000:D882  63 61 6E 20 4D 65
  14841. F000:D888  67 61 74 72 65 6E
  14842. F000:D88E  64 73
  14843. F000:D890  20 49 6E 63 2E 2C            db    ' Inc.,', 0Dh, 0Ah, 0Ah, ' Date ('
  14844. F000:D896  0D 0A 0A 20 44 61
  14845. F000:D89C  74 65 20 28
  14846. F000:D8A0  6D 6E 2F 64 61 74            db    'mn/date/year):                  '
  14847. F000:D8A6  65 2F 79 65 61 72
  14848. F000:D8AC  29 3A 20 20 20 20
  14849. F000:D8B2  20 20 20 20 20 20
  14850. F000:D8B8  20 20 20 20 20 20
  14851. F000:D8BE  20 20
  14852. F000:D8C0  BA                    db    0BAh
  14853. F000:D8C1  20 42 61 73 65 20            db    ' Base memory size  :', 0Dh, 0Ah, ' '
  14854. F000:D8C7  6D 65 6D 6F 72 79
  14855. F000:D8CD  20 73 69 7A 65 20
  14856. F000:D8D3  20 3A 0D 0A 20
  14857. F000:D8D8  54 69 6D 65 20 28            db    'Time (hour/min/sec):            '
  14858. F000:D8DE  68 6F 75 72 2F 6D
  14859. F000:D8E4  69 6E 2F 73 65 63
  14860. F000:D8EA  29 3A 20 20 20 20
  14861. F000:D8F0  20 20 20 20 20 20
  14862. F000:D8F6  20 20
  14863. F000:D8F8  20 20 20 20 20 20            db    '      '
  14864. F000:D8FE  BA                    db    0BAh
  14865. F000:D8FF  20 45 78 74 2E 20            db    ' Ext. memory size  :', 0Dh, 0Ah, ' '
  14866. F000:D905  6D 65 6D 6F 72 79
  14867. F000:D90B  20 73 69 7A 65 20
  14868. F000:D911  20 3A 0D 0A 20
  14869.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 253
  14870.  
  14871. F000:D916  46 6C 6F 70 70 79            db    'Floppy drive A:    :            '
  14872. F000:D91C  20 64 72 69 76 65
  14873. F000:D922  20 41 3A 20 20 20
  14874. F000:D928  20 3A 20 20 20 20
  14875. F000:D92E  20 20 20 20 20 20
  14876. F000:D934  20 20
  14877. F000:D936  20 20 20 20 20 20            db    '      '
  14878. F000:D93C  BA                    db    0BAh
  14879. F000:D93D  20 4E 75 6D 65 72            db    ' Numeric processor :', 0Dh, 0Ah, ' '
  14880. F000:D943  69 63 20 70 72 6F
  14881. F000:D949  63 65 73 73 6F 72
  14882. F000:D94F  20 3A 0D 0A 20
  14883. F000:D954  46 6C 6F 70 70 79            db    'Floppy drive B:    :', 0Dh, 0Ah, 0Ah
  14884. F000:D95A  20 64 72 69 76 65
  14885. F000:D960  20 42 3A 20 20 20
  14886. F000:D966  20 3A 0D 0A 0A
  14887. F000:D96B  20 48 61 72 64 20            db    ' Hard disk C: type  :', 0Dh, 0Ah
  14888. F000:D971  64 69 73 6B 20 43
  14889. F000:D977  3A 20 74 79 70 65
  14890. F000:D97D  20 20 3A 0D 0A
  14891. F000:D982  20 48 61 72 64 20            db    ' Hard disk D: type  :', 0Dh, 0Ah
  14892. F000:D988  64 69 73 6B 20 44
  14893. F000:D98E  3A 20 74 79 70 65
  14894. F000:D994  20 20 3A 0D 0A
  14895. F000:D999  20 50 72 69 6D 61            db    ' Primary display    :', 0Dh, 0Ah
  14896. F000:D99F  72 79 20 64 69 73
  14897. F000:D9A5  70 6C 61 79 20 20
  14898. F000:D9AB  20 20 3A 0D 0A
  14899. F000:D9B0  20 4B 65 79 62 6F            db    ' Keyboard '
  14900. F000:D9B6  61 72 64 20
  14901.   
  14902.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14903.                 ;                   SUBROUTINE
  14904.                 ;
  14905.                 ;         Called from:     F000:F2AD
  14906.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  14907.   
  14908.                 sub_233        proc    near
  14909. F000:D9BA  20 20                and    [bx+si],ah
  14910. F000:D9BC  20 20                and    [bx+si],ah
  14911. F000:D9BE  20 20                and    [bx+si],ah
  14912. F000:D9C0  20 20                and    [bx+si],ah
  14913. F000:D9C2  20 20                and    [bx+si],ah
  14914. F000:D9C4  3A 0D                cmp    cl,[di]
  14915. F000:D9C6  0A 20                or    ah,[bx+si]
  14916. F000:D9C8  56                    push    si
  14917. F000:D9C9  69 64 65 206F            imul    sp,word ptr [si+65h],206Fh    ; reg = data * value
  14918. F000:D9CE  42                    inc    dx
  14919. F000:D9CF  49                    dec    cx
  14920. F000:D9D0  4F                    dec    di
  14921. F000:D9D1  53                    push    bx
  14922. F000:D9D2  20 73 68                and    [bp+di+68h],dh
  14923. F000:D9D5  61                    popa                ; Restore all regs
  14924. F000:D9D6  64: 6F                outs dx,word ptr fs:[si]    ; Out [si] to port dx
  14925. F000:D9D8  77 20        ;*        ja    short loc_1187        ;*Jump if above
  14926. F000:D9D8  77 20                db    77h, 20h
  14927. F000:D9DA  20 3A                and    [bp+si],bh
  14928.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 254
  14929.  
  14930. F000:D9DC  0D 200A                or    ax,200Ah
  14931. F000:D9DF  53                    push    bx
  14932. F000:D9E0  63 72 61                arpl    word ptr [bp+si+61h],si    ; Adjust req priv lev
  14933. F000:D9E3  74 63                jz    short loc_1189        ; Jump if zero
  14934. F000:D9E5  68 5220                push    5220h
  14935. F000:D9E8  41                    inc    cx
  14936. F000:D9E9  4D                    dec    bp
  14937. F000:D9EA  20 6F 70                and    [bx+70h],ch
  14938. F000:D9ED  74 69                jz    short loc_1190        ; Jump if zero
  14939. F000:D9EF  6F                    outsw                ; Out [si] to port dx
  14940. F000:D9F0  6E                    outsb                ; Out [si] to port dx
  14941. F000:D9F1  20 3A                and    [bp+si],bh
  14942. F000:D9F3  0D 200A                or    ax,200Ah
  14943. F000:D9F6  4D                    dec    bp
  14944. F000:D9F7  61                    popa                ; Restore all regs
  14945. F000:D9F8  69 6E 20 4942            imul    bp,word ptr [bp+20h],4942h    ; reg = data * value
  14946. F000:D9FD  4F                    dec    di
  14947. F000:D9FE  53                    push    bx
  14948. F000:D9FF  20 73 68                and    [bp+di+68h],dh
  14949. F000:DA02  61                    popa                ; Restore all regs
  14950. F000:DA03  64: 6F                outs dx,word ptr fs:[si]    ; Out [si] to port dx
  14951. F000:DA05  77 20        ;*        ja    short loc_1188        ;*Jump if above
  14952. F000:DA05  77 20                db    77h, 20h
  14953. F000:DA07  20 20                and    [bx+si],ah
  14954. F000:DA09  3A 0D                cmp    cl,[di]
  14955. F000:DA0B  0A 0A                or    cl,[bp+si]
  14956. F000:DA0D  0A 0A                or    cl,[bp+si]
  14957. F000:DA0F  0A 0A                or    cl,[bp+si]
  14958. F000:DA11  0A 0A                or    cl,[bp+si]
  14959. F000:DA13  0A 20                or    ah,[bx+si]
  14960. F000:DA15  45                    inc    bp
  14961. F000:DA16  53                    push    bx
  14962. F000:DA17  43                    inc    bx
  14963. F000:DA18  20 3D                and    [di],bh
  14964. F000:DA1A  20 45 78                and    [di+78h],al
  14965. F000:DA1D  69 74 2C 1920            imul    si,word ptr [si+2Ch],1920h    ; reg = data * value
  14966. F000:DA22  20 1A                and    [bp+si],bl
  14967. F000:DA24  20 18                and    [bx+si],bl
  14968. F000:DA26  20 1B                and    [bp+di],bl
  14969. F000:DA28  20 3D                and    [di],bh
  14970. F000:DA2A  20 53 65                and    [bp+di+65h],dl
  14971. F000:DA2D  6C                    insb                ; Port dx to es:[di]
  14972. F000:DA2E  65: 63 74 2C                arpl    word ptr gs:[si+2Ch],si    ; Adjust req priv lev
  14973. F000:DA32  20 50 67                and    [bx+si+67h],dl
  14974. F000:DA35  55                    push    bp
  14975. F000:DA36  70 2F                jo    short loc_1191        ; Jump if overflow=1
  14976. F000:DA38  50                    push    ax
  14977. F000:DA39  67 44 6E 20 3D 20            db    'gDn = Modify'
  14978. F000:DA3F  4D 6F 64 69 66 79
  14979. F000:DA45  00 20 43                db    0, 20h, 43h
  14980. F000:DA48            loc_1189:                    ;  xref F000:D9E3
  14981. F000:DA48  79 6C                jns    short loc_1192        ; Jump if not sign
  14982. F000:DA4A  6E                    outsb                ; Out [si] to port dx
  14983. F000:DA4B  20 20                and    [bx+si],ah
  14984. F000:DA4D  48                    dec    ax
  14985. F000:DA4E  65 61 64 20 20 57            db    'ead  WPcom'
  14986. F000:DA54  50 63 6F 6D
  14987.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 255
  14988.  
  14989. F000:DA58            loc_1190:                    ;  xref F000:D9ED
  14990. F000:DA58  20 4C 5A                and    [si+5Ah],cl
  14991. F000:DA5B  6F                    outsw                ; Out [si] to port dx
  14992. F000:DA5C  6E                    outsb                ; Out [si] to port dx
  14993. F000:DA5D  65: 20 53 65                and    gs:[bp+di+65h],dl
  14994. F000:DA61  63 74 20                arpl    word ptr [si+20h],si    ; Adjust req priv lev
  14995. F000:DA64  20 53 69                and    [bp+di+69h],dl
  14996. F000:DA67            loc_1191:                    ;  xref F000:DA36
  14997. F000:DA67  7A 65                jp    short loc_1193        ; Jump if parity=1
  14998. F000:DA69  20 20                and    [bx+si],ah
  14999. F000:DA6B  20 20                and    [bx+si],ah
  15000. F000:DA6D  00 20                add    [bx+si],ah
  15001. F000:DA6F  49                    dec    cx
  15002. F000:DA70  6E                    outsb                ; Out [si] to port dx
  15003. F000:DA71  73 74                jnc    short loc_1194        ; Jump if carry=0
  15004. F000:DA73  61                    popa                ; Restore all regs
  15005. F000:DA74  6C                    insb                ; Port dx to es:[di]
  15006. F000:DA75  6C                    insb                ; Port dx to es:[di]
  15007. F000:DA76  65 64 20 20 20 20            db    65h, 64h, 20h, 20h, 20h, 20h
  15008. F000:DA7C  20 00 01                db    20h, 0, 1
  15009. F000:DA7F  20 4E 6F 74 20 49            db    ' Not Installed '
  15010. F000:DA85  6E 73 74 61 6C 6C
  15011. F000:DA8B  65 64 20
  15012. F000:DA8E  00 00                db    0, 0
  15013. F000:DA90  20 45 6E 61 62 6C            db    ' Enabled  '
  15014. F000:DA96  65 64 20 20
  15015. F000:DA9A  00 01                db    0, 1
  15016. F000:DA9C  20 44 69 73 61 62            db    ' Disabled '
  15017. F000:DAA2  6C 65 64 20
  15018. F000:DAA6  00 00 20 57 65 69            db    0, 0, 20h, 57h, 65h, 69h
  15019. F000:DAAC  74 65 6B 00                db    74h, 65h, 6Bh, 0
  15020. F000:DAB0  20 49 6E 73 74 61            db    20h, 49h, 6Eh, 73h, 74h, 61h
  15021. F000:DAB6            loc_1192:                    ;  xref F000:DA48
  15022. F000:DAB6  6C                    insb                ; Port dx to es:[di]
  15023. F000:DAB7  6C                    insb                ; Port dx to es:[di]
  15024. F000:DAB8  65 64 2C 57 65 69            db    'ed,Weitek'
  15025. F000:DABE  74 65 6B
  15026. F000:DAC1  00 20 32 20 00 01            db    0, 20h, 32h, 20h, 0, 1
  15027. F000:DAC7  20 31 20 00 00            db    20h, 31h, 20h, 0, 0
  15028. F000:DACC  20 33                db    20h, 33h
  15029. F000:DACE            loc_1193:                    ;  xref F000:DA67
  15030. F000:DACE  36: 30 20                xor    ss:[bx+si],ah
  15031. F000:DAD1  20 4B 42                and    [bp+di+42h],cl
  15032. F000:DAD4  2C 20                sub    al,20h            ; ' '
  15033. F000:DAD6  35 22AC                xor    ax,22ACh
  15034. F000:DAD9  20 20                and    [bx+si],ah
  15035. F000:DADB  00 01                add    [bx+di],al
  15036. F000:DADD  20 31                and    [bx+di],dh
  15037. F000:DADF  2E: 32 20                xor    ah,cs:[bx+si]
  15038. F000:DAE2  20 4D 42                and    [di+42h],cl
  15039. F000:DAE5  2C 20                sub    al,20h            ; ' '
  15040. F000:DAE7            loc_1194:                    ;  xref F000:DA71
  15041. F000:DAE7  35 22AC                xor    ax,22ACh
  15042. F000:DAEA  20 20                and    [bx+si],ah
  15043. F000:DAEC  00 02                add    [bp+si],al
  15044. F000:DAEE  20 37                and    [bx],dh
  15045. F000:DAF0  32 30                xor    dh,[bx+si]
  15046.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 256
  15047.  
  15048. F000:DAF2  20 20                and    [bx+si],ah
  15049. F000:DAF4  4B                    dec    bx
  15050. F000:DAF5  42                    inc    dx
  15051. F000:DAF6  2C 20                sub    al,20h            ; ' '
  15052. F000:DAF8  33 AB 2022                xor    bp,[bp+di+2022h]
  15053. F000:DAFC  20 00                and    [bx+si],al
  15054. F000:DAFE  03 20                add    sp,[bx+si]
  15055. F000:DB00  31 2E 3434                xor    ds:data_27e,bp        ; (02F8:3434=1703h)
  15056. F000:DB04  20 4D 42                and    [di+42h],cl
  15057. F000:DB07  2C 20                sub    al,20h            ; ' '
  15058. F000:DB09  33 AB 2022                xor    bp,[bp+di+2022h]
  15059. F000:DB0D  20 00                and    [bx+si],al
  15060. F000:DB0F  04 20                add    al,20h            ; ' '
  15061. F000:DB11  4D                    dec    bp
  15062. F000:DB12  6F                    outsw                ; Out [si] to port dx
  15063. F000:DB13  6E                    outsb                ; Out [si] to port dx
  15064. F000:DB14  6F                    outsw                ; Out [si] to port dx
  15065. F000:DB15  63 68 72                arpl    word ptr [bx+si+72h],bp    ; Adjust req priv lev
  15066. F000:DB18  6F                    outsw                ; Out [si] to port dx
  15067. F000:DB19  6D                    insw                ; Port dx to es:[di]
  15068. F000:DB1A  65: 20 20                and    gs:[bx+si],ah
  15069. F000:DB1D  20 20                and    [bx+si],ah
  15070. F000:DB1F  00 31                add    [bx+di],dh
  15071. F000:DB21  20 43 6F                and    [bp+di+6Fh],al
  15072. F000:DB24  6C                    insb                ; Port dx to es:[di]
  15073. F000:DB25  6F                    outsw                ; Out [si] to port dx
  15074. F000:DB26  72 20                jc    short $+22h        ; Jump if carry Set
  15075. F000:DB28  38 30                cmp    [bx+si],dh
  15076. F000:DB2A  78 32                js    short $+34h        ; Jump if sign=1
  15077. F000:DB2C  35 2020                xor    ax,2020h
  15078. F000:DB2F  20 00                and    [bx+si],al
  15079. F000:DB31  21 20                and    [bx+si],sp
  15080. F000:DB33  43                    inc    bx
  15081. F000:DB34  6F                    outsw                ; Out [si] to port dx
  15082. F000:DB35  6C                    insb                ; Port dx to es:[di]
  15083. F000:DB36  6F                    outsw                ; Out [si] to port dx
  15084. F000:DB37  72 20                jc    short $+22h        ; Jump if carry Set
  15085. F000:DB39  34 30                xor    al,30h            ; '0'
  15086. F000:DB3B  78 32                js    short $+34h        ; Jump if sign=1
  15087. F000:DB3D  35 2020                xor    ax,2020h
  15088. F000:DB40  20 00                and    [bx+si],al
  15089. F000:DB42  11 20                adc    [bx+si],sp
  15090. F000:DB44  56                    push    si
  15091. F000:DB45  47                    inc    di
  15092. F000:DB46  41                    inc    cx
  15093. F000:DB47  20 6F 72                and    [bx+72h],ch
  15094. F000:DB4A  20 45 47                and    [di+47h],al
  15095. F000:DB4D  41                    inc    cx
  15096. F000:DB4E  20 20                and    [bx+si],ah
  15097. F000:DB50  20 20                and    [bx+si],ah
  15098. F000:DB52  00 01                add    [bx+di],al
  15099. F000:DB54  20 34                and    [si],dh
  15100. F000:DB56  37                    aaa                ; Ascii adjust
  15101. F000:DB57  20 3D                and    [di],bh
  15102. F000:DB59  20 55 53                and    [di+53h],dl
  15103. F000:DB5C  45                    inc    bp
  15104. F000:DB5D  52                    push    dx
  15105.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 257
  15106.  
  15107. F000:DB5E  20 54 59                and    [si+59h],dl
  15108. F000:DB61  50                    push    ax
  15109. F000:DB62  45                    inc    bp
  15110. F000:DB63  20 00                and    [bx+si],al
  15111. F000:DB65  20 4D 6F                and    [di+6Fh],cl
  15112. F000:DB68  6E                    outsb                ; Out [si] to port dx
  15113. F000:DB69  74 68                jz    short $+6Ah        ; Jump if zero
  15114. F000:DB6B  20 3A                and    [bp+si],bh
  15115. F000:DB6D  20 4A 61                and    [bp+si+61h],cl
  15116. F000:DB70  6E                    outsb                ; Out [si] to port dx
  15117. F000:DB71  2C 20                sub    al,20h            ; ' '
  15118. F000:DB73  46                    inc    si
  15119. F000:DB74  65: 62 2C                bound    bp,dword ptr gs:[si]
  15120. F000:DB77  2E 2E 2E 2E 2E 44            db    '.....Dec', 0Dh, 0Ah, ' Date  : 0'
  15121. F000:DB7D  65 63 0D 0A 20 44
  15122. F000:DB83  61 74 65 20 20 3A
  15123. F000:DB89  20 30
  15124. F000:DB8B  31 2C 20 30 32 2C            db    '1, 02, 03,...31', 0Dh, 0Ah, ' Ye'
  15125. F000:DB91  20 30 33 2C 2E 2E
  15126. F000:DB97  2E 33 31 0D 0A 20
  15127. F000:DB9D  59 65
  15128. F000:DB9F  61 72 20 20 3A 20            db    'ar  : 1901, 1902,...2099'
  15129. F000:DBA5  31 39 30 31 2C 20
  15130. F000:DBAB  31 39 30 32 2C 2E
  15131. F000:DBB1  2E 2E 32 30 39 39
  15132. F000:DBB7  00                    db    0
  15133. F000:DBB8  20 54 69 6D 65 20            db    ' Time is 24 hour format:-', 0Dh, 0Ah
  15134. F000:DBBE  69 73 20 32 34 20
  15135. F000:DBC4  68 6F 75 72 20 66
  15136. F000:DBCA  6F 72 6D 61 74 3A
  15137. F000:DBD0  2D 0D 0A
  15138. F000:DBD3  20 48 6F 75 72 3A            db    ' Hour:(00-23), Minute:(00-59), S'
  15139. F000:DBD9  28 30 30 2D 32 33
  15140. F000:DBDF  29 2C 20 4D 69 6E
  15141. F000:DBE5  75 74 65 3A 28 30
  15142. F000:DBEB  30 2D 35 39 29 2C
  15143. F000:DBF1  20 53
  15144. F000:DBF3  65 63 6F 6E 64 3A            db    'econd:(00-59)', 0Dh, 0Ah, ' (1:3'
  15145. F000:DBF9  28 30 30 2D 35 39
  15146. F000:DBFF  29 0D 0A 20 28 31
  15147. F000:DC05  3A 33
  15148. F000:DC07  30 20 41 4D 20 3D            db    '0 AM = 01:30:00),   (1:30 PM = 1'
  15149. F000:DC0D  20 30 31 3A 33 30
  15150. F000:DC13  3A 30 30 29 2C 20
  15151. F000:DC19  20 20 28 31 3A 33
  15152. F000:DC1F  30 20 50 4D 20 3D
  15153. F000:DC25  20 31
  15154. F000:DC27  33 3A 33 30 3A 30            db    '3:30:00)'
  15155. F000:DC2D  30 29
  15156. F000:DC2F  00                    db    0
  15157. F000:DC30  20 4F 70 74 69 6F            db    ' Options:-', 0Dh, 0Ah, ' Monochr'
  15158. F000:DC36  6E 73 3A 2D 0D 0A
  15159. F000:DC3C  20 4D 6F 6E 6F 63
  15160. F000:DC42  68 72
  15161. F000:DC44  6F 6D 65 2C 20 20            db    'ome,  Color 40x25,', 0Dh, 0Ah, ' '
  15162. F000:DC4A  43 6F 6C 6F 72 20
  15163. F000:DC50  34 30 78 32 35 2C
  15164.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 258
  15165.  
  15166. F000:DC56  0D 0A 20
  15167. F000:DC59  56 47 41 20 6F 72            db    'VGA or EGA,  Color 80x25,  Not I'
  15168. F000:DC5F  20 45 47 41 2C 20
  15169. F000:DC65  20 43 6F 6C 6F 72
  15170. F000:DC6B  20 38 30 78 32 35
  15171. F000:DC71  2C 20 20 4E 6F 74
  15172. F000:DC77  20 49
  15173. F000:DC79  6E 73 74 61 6C 6C            db    'nstalled'
  15174. F000:DC7F  65 64
  15175. F000:DC81  00                    db    0
  15176. F000:DC82  20 4F 70 74 69 6F            db    ' Options:-', 0Dh, 0Ah, ' 360 KB '
  15177. F000:DC88  6E 73 3A 2D 0D 0A
  15178. F000:DC8E  20 33 36 30 20 4B
  15179. F000:DC94  42 20
  15180. F000:DC96  35                    db    '5'
  15181. F000:DC97  AC                    db    0ACh
  15182. F000:DC98            loc_1195:
  15183. F000:DC98  22 2C                and    ch,[si]
  15184. F000:DC9A  20 20                and    [bx+si],ah
  15185. F000:DC9C  31 2E 2032                xor    ds:data_26e,bp        ; (02F8:2032=26C1h)
  15186. F000:DCA0  20 4D 42                and    [di+42h],cl
  15187. F000:DCA3  20 35                and    [di],dh
  15188. F000:DCA5  AC                    lodsb                ; String [si] to al
  15189. F000:DCA6  22 2C                and    ch,[si]
  15190. F000:DCA8  0D 200A                or    ax,200Ah
  15191. F000:DCAB  37                    aaa                ; Ascii adjust
  15192. F000:DCAC  32 30                xor    dh,[bx+si]
  15193. F000:DCAE  20 4B 42                and    [bp+di+42h],cl
  15194. F000:DCB1  20 33                and    [bp+di],dh
  15195. F000:DCB3  AB                    stosw                ; Store ax to es:[di]
  15196. F000:DCB4  22 2C                and    ch,[si]
  15197. F000:DCB6  20 20                and    [bx+si],ah
  15198. F000:DCB8  31 2E 3434                xor    ds:data_27e,bp        ; (02F8:3434=1703h)
  15199. F000:DCBC  20 4D 42                and    [di+42h],cl
  15200. F000:DCBF  20 33                and    [bp+di],dh
  15201. F000:DCC1  AB                    stosw                ; Store ax to es:[di]
  15202. F000:DCC2  22 2C                and    ch,[si]
  15203. F000:DCC4  20 20                and    [bx+si],ah
  15204. F000:DCC6  4E                    dec    si
  15205. F000:DCC7  6F                    outsw                ; Out [si] to port dx
  15206. F000:DCC8  74 20                jz    short $+22h        ; Jump if zero
  15207. F000:DCCA  49                    dec    cx
  15208. F000:DCCB  6E                    outsb                ; Out [si] to port dx
  15209. F000:DCCC  73 74                jnc    short $+76h        ; Jump if carry=0
  15210. F000:DCCE  61                    popa                ; Restore all regs
  15211. F000:DCCF  6C                    insb                ; Port dx to es:[di]
  15212. F000:DCD0  6C                    insb                ; Port dx to es:[di]
  15213. F000:DCD1  65 64 00                db    65h, 64h, 0
  15214. F000:DCD4  20 46 49 58 45 44            db    ' FIXED type = 01...46, USER '
  15215. F000:DCDA  20 74 79 70 65 20
  15216. F000:DCE0  3D 20 30 31 2E 2E
  15217. F000:DCE6  2E 34 36 2C 20 55
  15218. F000:DCEC  53 45 52 20
  15219. F000:DCF0            loc_1196:
  15220. F000:DCF0  64 65 66 69 6E 65            db    'defined type = 47,', 0Dh, 0Ah, ' '
  15221. F000:DCF6  64 20 74 79 70 65
  15222. F000:DCFC  20 3D 20 34 37 2C
  15223.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 259
  15224.  
  15225. F000:DD02  0D 0A 20
  15226. F000:DD05  46 6F 72 20 74 79            db    'For type 47 Enter: Cyln,Head,WPc'
  15227. F000:DD0B  70 65 20 34 37 20
  15228. F000:DD11  45 6E 74 65 72 3A
  15229. F000:DD17  20 43 79 6C 6E 2C
  15230. F000:DD1D  48 65 61 64 2C 57
  15231. F000:DD23  50 63
  15232. F000:DD25  6F 6D 2C 4C 5A 6F            db    'om,LZone,Sec,', 0Dh, 0Ah, ' (WPc'
  15233. F000:DD2B  6E 65 2C 53 65 63
  15234. F000:DD31  2C 0D 0A 20 28 57
  15235. F000:DD37  50 63
  15236. F000:DD39  6F 6D 20 69 73 20            db    'om is 0 for ALL,  65535 for NONE'
  15237. F000:DD3F  30 20 66 6F 72 20
  15238. F000:DD45  41 4C 4C 2C 20 20
  15239. F000:DD4B  36 35 35 33 35 20
  15240. F000:DD51  66 6F 72 20 4E 4F
  15241. F000:DD57  4E 45
  15242. F000:DD59  29                    db    ')'
  15243. F000:DD5A  00                    db    0
  15244. F000:DD5B  20 4F 70 74 69 6F            db    ' Options:-', 0Dh, 0Ah, ' Install'
  15245. F000:DD61  6E 73 3A 2D 0D 0A
  15246. F000:DD67  20 49 6E 73 74 61
  15247. F000:DD6D  6C 6C
  15248. F000:DD6F  65 64 20 20 20 20            db    'ed     : Test keyboard', 0Dh, 0Ah
  15249. F000:DD75  20 3A 20 54 65 73
  15250. F000:DD7B  74 20 6B 65 79 62
  15251. F000:DD81  6F 61 72 64 0D 0A
  15252. F000:DD87  20 4E 6F 74 20 49            db    ' Not Installed : Do not test key'
  15253. F000:DD8D  6E 73 74 61 6C 6C
  15254. F000:DD93  65 64 20 3A 20 44
  15255. F000:DD99  6F 20 6E 6F 74 20
  15256. F000:DD9F  74 65 73 74 20 6B
  15257. F000:DDA5  65 79
  15258. F000:DDA7  62 6F 61 72 64            db    'board'
  15259. F000:DDAC  00                    db    0
  15260. F000:DDAD  20 49 66 20 72 65            db    ' If required, BIOS will use 256 '
  15261. F000:DDB3  71 75 69 72 65 64
  15262. F000:DDB9  2C 20 42 49 4F 53
  15263. F000:DDBF  20 77 69 6C 6C 20
  15264. F000:DDC5  75 73 65 20 32 35
  15265. F000:DDCB  36 20
  15266. F000:DDCD  62 79 74 65 73 20            db    'bytes of RAM', 0Dh, 0Ah, ' (1) :'
  15267. F000:DDD3  6F 66 20 52 41 4D
  15268. F000:DDD9  0D 0A 20 28 31 29
  15269. F000:DDDF  20 3A
  15270. F000:DDE1  20 55 73 69 6E 67            db    ' Using BIOS stack area at 0030:0'
  15271. F000:DDE7  20 42 49 4F 53 20
  15272. F000:DDED  73 74 61 63 6B 20
  15273. F000:DDF3  61 72 65 61 20 61
  15274. F000:DDF9  74 20 30 30 33 30
  15275. F000:DDFF  3A 30
  15276. F000:DE01  30 30 30 0D 0A 20            db    '000', 0Dh, 0Ah, ' (2) : Reducing'
  15277. F000:DE07  28 32 29 20 3A 20
  15278. F000:DE0D  52 65 64 75 63 69
  15279. F000:DE13  6E 67
  15280. F000:DE15  20 62 61 73 65 20            db    ' base memory size by 1KB'
  15281. F000:DE1B  6D 65 6D 6F 72 79
  15282.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 260
  15283.  
  15284. F000:DE21  20 73 69 7A 65 20
  15285. F000:DE27  62 79 20 31 4B 42
  15286. F000:DE2D  00                    db    0
  15287. F000:DE2E  20 4F 70 74 69 6F            db    ' Options:-', 0Dh, 0Ah, ' Enabled'
  15288. F000:DE34  6E 73 3A 2D 0D 0A
  15289. F000:DE3A  20 45 6E 61 62 6C
  15290. F000:DE40  65 64
  15291. F000:DE42  20 20 3A 20 53 68            db    '  : Shadow RAM ON', 0Dh, 0Ah, ' '
  15292. F000:DE48  61 64 6F 77 20 52
  15293. F000:DE4E  41 4D 20 4F 4E 0D
  15294. F000:DE54  0A 20
  15295. F000:DE56  44 69 73 61 62 6C            db    'Disabled : Shadow RAM OFF'
  15296. F000:DE5C  65 64 20 3A 20 53
  15297. F000:DE62  68 61 64 6F 77 20
  15298. F000:DE68  52 41 4D 20 4F 46
  15299. F000:DE6E  46
  15300. F000:DE6F  00                    db    0
  15301. F000:DE70  20 57 72 69 74 65            db    ' Write data into CMOS and exit ('
  15302. F000:DE76  20 64 61 74 61 20
  15303. F000:DE7C  69 6E 74 6F 20 43
  15304. F000:DE82  4D 4F 53 20 61 6E
  15305. F000:DE88  64 20 65 78 69 74
  15306. F000:DE8E  20 28
  15307. F000:DE90  59 2F 4E 29 3F 20            db    'Y/N)?   '
  15308. F000:DE96  20 20
  15309. F000:DE98  08 08 00 53 75 6E            db    8, 8, 0, 53h, 75h, 6Eh
  15310. F000:DE9E  00 4D 6F 6E 00 54            db    0, 4Dh, 6Fh, 6Eh, 0, 54h
  15311. F000:DEA4  75 65 00 57 65 64            db    75h, 65h, 0, 57h, 65h, 64h
  15312. F000:DEAA  00 54 68 75 00 46            db    0, 54h, 68h, 75h, 0, 46h
  15313. F000:DEB0  72 69 00 53 61 74            db    72h, 69h, 0, 53h, 61h, 74h
  15314. F000:DEB6  00 4A 61 6E 00 46            db    0, 4Ah, 61h, 6Eh, 0, 46h
  15315. F000:DEBC  65 62 00 4D 61 72            db    65h, 62h, 0, 4Dh, 61h, 72h
  15316. F000:DEC2  00 41 70 72 00 4D            db    0, 41h, 70h, 72h, 0, 4Dh
  15317. F000:DEC8  61 79 00 4A 75 6E            db    61h, 79h, 0, 4Ah, 75h, 6Eh
  15318. F000:DECE  00 4A 75 6C 00 41            db    0, 4Ah, 75h, 6Ch, 0, 41h
  15319. F000:DED4  75 67 00 53 65 70            db    75h, 67h, 0, 53h, 65h, 70h
  15320. F000:DEDA  00 4F 63 74 00 4E            db    0, 4Fh, 63h, 74h, 0, 4Eh
  15321. F000:DEE0  6F 76 00                db    6Fh, 76h, 0
  15322. F000:DEE3  44 65 63                db    44h, 65h, 63h
  15323. F000:DEE6  011A[00]                db    282 dup (0)
  15324.   
  15325.   
  15326.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  15327.   
  15328. F000:E000            int_18h_entry:                    ;  xref F000:FF13
  15329. F000:E000  EA F000E005                jmp    far ptr int_18h_basic    ; (E005)
  15330.   
  15331.                 sub_233        endp
  15332.   
  15333.   
  15334.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 18h ▒▒▒▒▒
  15335.                 ;
  15336.                 ;   ROM BASIC
  15337.   
  15338. F000:E005            int_18h_basic    proc    near            ;  xref F000:E000
  15339. F000:E005  E9 AF9F                jmp    loc_288            ; (8FA7)
  15340. F000:E008  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15341.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 261
  15342.  
  15343. F000:E00E  49 42 4D 20 43 4F            db    'IBM COMPATIBLE IBM IS A TRADEMAR'
  15344. F000:E014  4D 50 41 54 49 42
  15345. F000:E01A  4C 45 20 49 42 4D
  15346. F000:E020  20 49 53 20 41 20
  15347. F000:E026  54 52 41 44 45 4D
  15348. F000:E02C  41 52
  15349. F000:E02E  4B 20 4F 46 20 49            db    'K OF INTERNATIONAL BUSINESS MACH'
  15350. F000:E034  4E 54 45 52 4E 41
  15351. F000:E03A  54 49 4F 4E 41 4C
  15352. F000:E040  20 42 55 53 49 4E
  15353. F000:E046  45 53 53 20 4D 41
  15354. F000:E04C  43 48
  15355. F000:E04E  49 4E 45 53 20 43            db    'INES CORP.'
  15356. F000:E054  4F 52 50 2E
  15357. F000:E058  FF            data_149    db    0FFh            ; Data table (indexed access)
  15358.                                         ;  xref F000:BD3D
  15359. F000:E059  00 00                db    0, 0
  15360. F000:E05B            loc_1197:                    ;  xref F000:97C5, 9CBD, F9F3, FFF0
  15361. F000:E05B  E9 A00E                jmp    system_reset        ; (806C)
  15362. F000:E05E  F1 A3 02 71 83 A5            db    0F1h, 0A3h, 2, 71h, 83h, 0A5h
  15363. F000:E064  A5 C5 A6 A6 71 44            db    0A5h, 0C5h, 0A6h, 0A6h, 71h, 44h
  15364. F000:E06A  C5 B6 F5 66 B5 A6            db    0C5h, 0B6h, 0F5h, 66h, 0B5h, 0A6h
  15365. F000:E070  71 04 56 A5 52 71            db    71h, 4, 56h, 0A5h, 52h, 71h
  15366. F000:E076  82 03 F2 C2 32 71            db    82h, 3, 0F2h, 0C2h, 32h, 71h
  15367. F000:E07C  82 03 F2 D2 40 10            db    82h, 3, 0F2h, 0D2h, 40h, 10h
  15368. F000:E082  C2 03 72 71 71 D4            db    0C2h, 3, 72h, 71h, 71h, 0D4h
  15369. F000:E088  85 36 36 C5 07 71            db    85h, 36h, 36h, 0C5h, 7, 71h
  15370. F000:E08E  94 66 85 B5 32 71            db    94h, 66h, 85h, 0B5h, 32h, 71h
  15371. F000:E094  C4 76 76 C5 96 71            db    0C4h, 76h, 76h, 0C5h, 96h, 71h
  15372. F000:E09A  44 66 56 B6 A5 36            db    44h, 66h, 56h, 0B6h, 0A5h, 36h
  15373. F000:E0A0  85 06 96 32 40 10            db    85h, 6, 96h, 32h, 40h, 10h
  15374. F000:E0A6  71 54 C5 E6 71 14            db    71h, 54h, 0C5h, 0E6h, 71h, 14h
  15375. F000:E0AC  C5 96 A6 C5 07 71            db    0C5h, 96h, 0A6h, 0C5h, 7, 71h
  15376. F000:E0B2  42 71 72 E2 72 B2            db    42h, 71h, 72h, 0E2h, 72h, 0B2h
  15377. F000:E0B8  A2 32 40 10 F1 92            db    0A2h, 32h, 40h, 10h, 0F1h, 92h
  15378. F000:E0BE  72 82 02 71 E2 B2            db    72h, 82h, 2, 71h, 0E2h, 0B2h
  15379. F000:E0C4  B2 42 03 82 92 D2            db    0B2h, 42h, 3, 82h, 92h, 0D2h
  15380. F000:E0CA  52 28 43 29 31 39            db    'R(C)1985-1990, American Megatren'
  15381. F000:E0D0  38 35 2D 31 39 39
  15382. F000:E0D6  30 2C 20 41 6D 65
  15383. F000:E0DC  72 69 63 61 6E 20
  15384. F000:E0E2  4D 65 67 61 74 72
  15385. F000:E0E8  65 6E
  15386. F000:E0EA  64 73 20 49 6E 63            db    'ds Inc.,All Rights Reserved.1346'
  15387. F000:E0F0  2E 2C 41 6C 6C 20
  15388. F000:E0F6  52 69 67 68 74 73
  15389. F000:E0FC  20 52 65 73 65 72
  15390. F000:E102  76 65 64 2E 31 33
  15391. F000:E108  34 36
  15392. F000:E10A  20 4F 61 6B 62 72            db    ' Oakbrook Drive, Suite-120, Norc'
  15393. F000:E110  6F 6F 6B 20 44 72
  15394. F000:E116  69 76 65 2C 20 53
  15395. F000:E11C  75 69 74 65 2D 31
  15396. F000:E122  32 30 2C 20 4E 6F
  15397. F000:E128  72 63
  15398. F000:E12A  72 6F 73 73 2C 20            db    'ross, GA-30093. Phone-(404)-263-'
  15399. F000:E130  47 41 2D 33 30 30
  15400.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 262
  15401.  
  15402. F000:E136  39 33 2E 20 50 68
  15403. F000:E13C  6F 6E 65 2D 28 34
  15404. F000:E142  30 34 29 2D 32 36
  15405. F000:E148  33 2D
  15406. F000:E14A  38 31 38 31 2E            db    '8181.'
  15407. F000:E14F  00                    db    0
  15408. F000:E150            loc_1198:                    ;  xref F000:AA4D, AB63, AD04
  15409. F000:E150  FA                    cli                ; Disable interrupts
  15410. F000:E151  E8 AD8E                call    sub_43            ; (8EE2)
  15411. F000:E154  E9 1862                jmp    loc_1501        ; (F9B9)
  15412. F000:E157  B0 FE E6 64                db    0B0h, 0FEh, 0E6h, 64h
  15413. F000:E15B            loc_1199:                    ;  xref F000:E15C
  15414. F000:E15B  F4                    hlt                ; Halt processor
  15415. F000:E15C  EB FD                jmp    short loc_1199        ; (E15B)
  15416. F000:E15E  00 00 50 E1 20 00            db    0, 0, 50h, 0E1h, 20h, 0
  15417. F000:E164  00 87 00 00 50 E1            db    0, 87h, 0, 0, 50h, 0E1h
  15418. F000:E16A  20 00 00 87 00 00            db    20h, 0, 0, 87h, 0, 0
  15419. F000:E170  50 E1 20 00 00 87            db    50h, 0E1h, 20h, 0, 0, 87h
  15420. F000:E176  00 00 50 E1 20 00            db    0, 0, 50h, 0E1h, 20h, 0
  15421. F000:E17C  00 87 00 00 50 E1            db    0, 87h, 0, 0, 50h, 0E1h
  15422. F000:E182  20 00 00 87 00 00            db    20h, 0, 0, 87h, 0, 0
  15423. F000:E188  50 E1 20 00 00            db    50h, 0E1h, 20h, 0, 0
  15424. F000:E18D            loc_1200:
  15425. F000:E18D  87 00                xchg    ax,[bx+si]
  15426. F000:E18F  00 50 E1                add    [bx+si-1Fh],dl
  15427. F000:E192  20 00                and    [bx+si],al
  15428. F000:E194  00 87 0000                add    [bx+0],al
  15429.                         nop                ;*Fixup for MASM (M)
  15430. F000:E198  50                    push    ax
  15431. F000:E199  E1 20        ;*        loopz    short locloop_1204    ;*Loop if zf=1, cx>0
  15432.   
  15433. F000:E199  E1 20                db    0E1h, 20h
  15434. F000:E19B            loc_1201:
  15435. F000:E19B  00 00                add    [bx+si],al
  15436. F000:E19D  87 00                xchg    ax,[bx+si]
  15437. F000:E19F  00 A8 20FE                add    ds:data_25e[bx+si],ch    ; (0040:20FE=16h)
  15438. F000:E1A3  00 00                add    [bx+si],al
  15439. F000:E1A5  87 00                xchg    ax,[bx+si]
  15440. F000:E1A7  00 50 E1                add    [bx+si-1Fh],dl
  15441. F000:E1AA  20 00                and    [bx+si],al
  15442. F000:E1AC  00 87 0000                add    [bx+0],al
  15443.                         nop                ;*Fixup for MASM (M)
  15444. F000:E1B0  50                    push    ax
  15445. F000:E1B1  E1 20                loopz    short locloop_1206    ; Loop if zf=1, cx>0
  15446.   
  15447.   
  15448. F000:E1B3            locloop_1203:
  15449. F000:E1B3  00 00                add    [bx+si],al
  15450. F000:E1B5  87 00                xchg    ax,[bx+si]
  15451. F000:E1B7  00 50 E1                add    [bx+si-1Fh],dl
  15452. F000:E1BA  20 00                and    [bx+si],al
  15453. F000:E1BC  00 87 0000                add    [bx+0],al
  15454.                         nop                ;*Fixup for MASM (M)
  15455. F000:E1C0  50                    push    ax
  15456. F000:E1C1  E1 20                loopz    short locloop_1208    ; Loop if zf=1, cx>0
  15457.   
  15458. F000:E1C3  00 00                add    [bx+si],al
  15459.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 263
  15460.  
  15461. F000:E1C5  87 00                xchg    ax,[bx+si]
  15462. F000:E1C7  00 50 E1                add    [bx+si-1Fh],dl
  15463. F000:E1CA  20 00                and    [bx+si],al
  15464. F000:E1CC  00 87 0000                add    [bx+0],al
  15465.                         nop                ;*Fixup for MASM (M)
  15466. F000:E1D0  50                    push    ax
  15467. F000:E1D1  E1 20                loopz    short locloop_1210    ; Loop if zf=1, cx>0
  15468.   
  15469.   
  15470. F000:E1D3            locloop_1206:                    ;  xref F000:E1B1
  15471. F000:E1D3  00 00                add    [bx+si],al
  15472. F000:E1D5  87 00                xchg    ax,[bx+si]
  15473. F000:E1D7  00 53 FF                add    [bp+di-1],dl
  15474. F000:E1DA  20 00                and    [bx+si],al
  15475. F000:E1DC  00 87 0000                add    [bx+0],al
  15476.                         nop                ;*Fixup for MASM (M)
  15477. F000:E1E0  50                    push    ax
  15478. F000:E1E1  E1 20                loopz    short locloop_1211    ; Loop if zf=1, cx>0
  15479.   
  15480.   
  15481. F000:E1E3            locloop_1208:                    ;  xref F000:E1C1
  15482. F000:E1E3  00 00                add    [bx+si],al
  15483. F000:E1E5  87 00                xchg    ax,[bx+si]
  15484. F000:E1E7  00 50 E1                add    [bx+si-1Fh],dl
  15485. F000:E1EA  20 00                and    [bx+si],al
  15486. F000:E1EC  00 87 0000                add    [bx+0],al
  15487.                         nop                ;*Fixup for MASM (M)
  15488. F000:E1F0  50                    push    ax
  15489. F000:E1F1  E1 20                loopz    short locloop_1213    ; Loop if zf=1, cx>0
  15490.   
  15491.   
  15492. F000:E1F3            locloop_1210:                    ;  xref F000:E1D1
  15493. F000:E1F3  00 00                add    [bx+si],al
  15494. F000:E1F5  87 00                xchg    ax,[bx+si]
  15495. F000:E1F7  00 50 E1                add    [bx+si-1Fh],dl
  15496. F000:E1FA  20 00                and    [bx+si],al
  15497. F000:E1FC  00 87 0000                add    [bx+0],al
  15498.                         nop                ;*Fixup for MASM (M)
  15499. F000:E200  50                    push    ax
  15500. F000:E201  E1 20                loopz    short locloop_1215    ; Loop if zf=1, cx>0
  15501.   
  15502.   
  15503. F000:E203            locloop_1211:                    ;  xref F000:E1E1
  15504. F000:E203  00 00                add    [bx+si],al
  15505. F000:E205  87 00                xchg    ax,[bx+si]
  15506. F000:E207  00 50 E1                add    [bx+si-1Fh],dl
  15507. F000:E20A  20 00                and    [bx+si],al
  15508. F000:E20C  00 87 0000                add    [bx+0],al
  15509.                         nop                ;*Fixup for MASM (M)
  15510. F000:E210  50                    push    ax
  15511. F000:E211  E1 20                loopz    short locloop_1217    ; Loop if zf=1, cx>0
  15512.   
  15513.   
  15514. F000:E213            locloop_1213:                    ;  xref F000:E1F1
  15515. F000:E213  00 00                add    [bx+si],al
  15516. F000:E215  87 00                xchg    ax,[bx+si]
  15517. F000:E217  00 50 E1                add    [bx+si-1Fh],dl
  15518.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 264
  15519.  
  15520. F000:E21A  20 00                and    [bx+si],al
  15521. F000:E21C  00 87 0000                add    [bx+0],al
  15522.                         nop                ;*Fixup for MASM (M)
  15523. F000:E220  50                    push    ax
  15524. F000:E221  E1 20                loopz    short locloop_1219    ; Loop if zf=1, cx>0
  15525.   
  15526.   
  15527. F000:E223            locloop_1215:                    ;  xref F000:E201
  15528. F000:E223  00 00                add    [bx+si],al
  15529. F000:E225  87 00                xchg    ax,[bx+si]
  15530. F000:E227  00 50 E1                add    [bx+si-1Fh],dl
  15531. F000:E22A  20 00                and    [bx+si],al
  15532. F000:E22C  00 87 0000                add    [bx+0],al
  15533.                         nop                ;*Fixup for MASM (M)
  15534. F000:E230  50                    push    ax
  15535. F000:E231  E1 20                loopz    short locloop_1221    ; Loop if zf=1, cx>0
  15536.   
  15537.   
  15538. F000:E233            locloop_1217:                    ;  xref F000:E211
  15539. F000:E233  00 00                add    [bx+si],al
  15540. F000:E235  87 00                xchg    ax,[bx+si]
  15541. F000:E237  00 50 E1                add    [bx+si-1Fh],dl
  15542. F000:E23A  20 00                and    [bx+si],al
  15543. F000:E23C  00 87 0000                add    [bx+0],al
  15544.                         nop                ;*Fixup for MASM (M)
  15545. F000:E240  50                    push    ax
  15546. F000:E241  E1 20        ;*        loopz    short locloop_1222    ;*Loop if zf=1, cx>0
  15547.   
  15548. F000:E241  E1 20                db    0E1h, 20h
  15549.   
  15550. F000:E243            locloop_1219:                    ;  xref F000:E221
  15551. F000:E243  00 00                add    [bx+si],al
  15552. F000:E245  87 00                xchg    ax,[bx+si]
  15553. F000:E247  00 50 E1                add    [bx+si-1Fh],dl
  15554. F000:E24A  20 00                and    [bx+si],al
  15555. F000:E24C  00 87 0000                add    [bx+0],al
  15556.                         nop                ;*Fixup for MASM (M)
  15557. F000:E250  50                    push    ax
  15558. F000:E251  E1 20        ;*        loopz    short locloop_1224    ;*Loop if zf=1, cx>0
  15559.   
  15560. F000:E251  E1 20                db    0E1h, 20h
  15561.   
  15562. F000:E253            locloop_1221:                    ;  xref F000:E231
  15563. F000:E253  00 00                add    [bx+si],al
  15564. F000:E255  87 00                xchg    ax,[bx+si]
  15565. F000:E257  00 50 E1                add    [bx+si-1Fh],dl
  15566. F000:E25A  20 00                and    [bx+si],al
  15567. F000:E25C  00 87 0000                add    [bx+0],al
  15568.                         nop                ;*Fixup for MASM (M)
  15569. F000:E260  00 00                add    [bx+si],al
  15570. F000:E262  00 00                add    [bx+si],al
  15571. F000:E264  00 00                add    [bx+si],al
  15572. F000:E266  00 00                add    [bx+si],al
  15573. F000:E268  0060 E260 930F    data_152    dw    60h, 0E260h, 930Fh    ;  xref F000:CB58, F9BA
  15574. F000:E26E  0000                    dw    0
  15575. F000:E270  0100 E160 000F    data_153    dw    100h, 0E160h, 0Fh    ;  xref F000:CB00
  15576. F000:E276  0000                    dw    0
  15577.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 265
  15578.  
  15579. F000:E278  00 FC 00 04 00 93            db    0, 0FCh, 0, 4, 0, 93h
  15580. F000:E27E  00 00 FF FF 00 00            db    0, 0, 0FFh, 0FFh, 0, 0
  15581. F000:E284  0F 9B 00 00 00 01            db    0Fh, 9Bh, 0, 0, 0, 1
  15582. F000:E28A  00 03 00 93 00 00            db    0, 3, 0, 93h, 0, 0
  15583. F000:E290  FF FF 00 00 0F 9B            db    0FFh, 0FFh, 0, 0, 0Fh, 9Bh
  15584. F000:E296  000A[00]                db    10 dup (0)
  15585. F000:E2A0  FFFF 0000 9300    data_155    dw    0FFFFh, 0, 9300h    ;  xref F000:CB86, F9E8
  15586. F000:E2A6  0000                    dw    0
  15587. F000:E2A8  0010[00]                db    16 dup (0)
  15588. F000:E2B8  FFFF 0000 0000    data_157    dw    0FFFFh, 0, 0        ;  xref F000:CB80, F9E2
  15589. F000:E2BE  0000                    dw    0
  15590. F000:E2C0  BF            data_158    db    0BFh            ;  xref F000:9139, 924A, 93BE, 93E5
  15591.                                         ;            9403, 9473, 974C, 9767
  15592.                                         ;            988B, C98B
  15593. F000:E2C1  00 00                db    0, 0
  15594.   
  15595.   
  15596.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  15597.   
  15598. F000:E2C3            int_2_entry:
  15599. F000:E2C3  E9 06C4                jmp    int_2_NMI        ; (E98A)
  15600. F000:E2C6  D8 E4 B3 BB 00 00            db    0D8h, 0E4h, 0B3h, 0BBh, 0, 0
  15601. F000:E2CC  00 00 00 00                db    0, 0, 0, 0
  15602. F000:E2D0  30 30 30 30 30 30            db    '0000000000000000(C)1990 American'
  15603. F000:E2D6  30 30 30 30 30 30
  15604. F000:E2DC  30 30 30 30 28 43
  15605. F000:E2E2  29 31 39 39 30 20
  15606. F000:E2E8  41 6D 65 72 69 63
  15607. F000:E2EE  61 6E
  15608. F000:E2F0  20 4D 65 67 61 74            db    ' Megatrends Inc.ROM-BIOS (C)1989'
  15609. F000:E2F6  72 65 6E 64 73 20
  15610. F000:E2FC  49 6E 63 2E 52 4F
  15611. F000:E302  4D 2D 42 49 4F 53
  15612. F000:E308  20 28 43 29 31 39
  15613. F000:E30E  38 39
  15614. F000:E310  20 41 6D 65 72 69            db    ' American Megatrends Inc', 0Dh, 0Ah
  15615. F000:E316  63 61 6E 20 4D 65
  15616. F000:E31C  67 61 74 72 65 6E
  15617. F000:E322  64 73 20 49 6E 63
  15618. F000:E328  0D 0A
  15619. F000:E32A  0D 0A                db    0Dh, 0Ah
  15620. F000:E32C  00 00 00 00 00            db    0, 0, 0, 0, 0
  15621.   
  15622.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  15623.                                         ; █ Hard Disk Information Tables  █
  15624.                                         ; █                               █
  15625.                                         ; █   Each sub-table contains a   █
  15626.                                         ; █   a set of 16 bytes for each  █
  15627.                                         ; █   particular disk type.       █
  15628.                                         ; █                               █
  15629.                                         ; █   Type number specified may   █
  15630.                                         ; █   differ with manufactures    █
  15631.                                         ; █   specification.  The hard    █
  15632.                                         ; █   disk table shown here       █
  15633.                                         ; █   assumes the first entry     █
  15634.                                         ; █   is type 0.                  █
  15635.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  15636.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 266
  15637.  
  15638.   
  15639. F000:E331  0000            hdsk_cylinders    dw    0            ;  Number of cylinders, hdsk_type_0
  15640. F000:E333  00            hdsk_heads    db    0            ;  Number of heads
  15641. F000:E334  0000            hdsk_lo_wrt_cyl    dw    0            ;  Low write current cyl begin *
  15642. F000:E336  0000            hdsk_precompcyl    dw    0            ;  Write pre-compensation cylinder
  15643. F000:E338  00            hdsk_err_length    db    0            ;  Error correction burst length *
  15644. F000:E339  00            hdsk_misl_bits    db    0            ;  Miscellaneous bit functions:
  15645.                                         ;    bits 0-2 disk option, XT only*
  15646.                                         ;         0-2 unused, all others
  15647.                                         ;         3 = 1 if > 8 heads
  15648.                                         ;         4   unused
  15649.                                         ;         5 = 1 for bad map at last
  15650.                                         ;              cylinder + 1
  15651.                                         ;         6 or 7 = 1 no retries
  15652. F000:E33A  00            hdsk_timeout    db    0            ;  Normal timeout *
  15653. F000:E33B  00            hdsk_fmt_timout    db    0            ;  Format timeout *
  15654. F000:E33C  00            hdsk_chk_timout    db    0            ;  Check timeout  *
  15655. F000:E33D  0000            hdsk_parkng_cyl    dw    0            ;  Parking cylinder number
  15656. F000:E33F  00            hdsk_sectr_trac    db    0            ;  Number of sectors per track
  15657. F000:E340  00            hdsk_unused    db    0            ;  Unused
  15658.                                         ;     * indicates XT machines only
  15659. F000:E341  00 00 00 00 00 00    hdsk_type_1    db    0, 0, 0, 0, 0, 0
  15660. F000:E347  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15661. F000:E34D  00 00 00 00                db    0, 0, 0, 0
  15662. F000:E351  00 00 00 00 00 00    hdsk_type_2    db    0, 0, 0, 0, 0, 0
  15663. F000:E357  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15664. F000:E35D  00 00 00 00                db    0, 0, 0, 0
  15665. F000:E361  00 00 00 00 00 00    hdsk_type_3    db    0, 0, 0, 0, 0, 0
  15666. F000:E367  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15667. F000:E36D  00 00 00 00                db    0, 0, 0, 0
  15668. F000:E371  00 00 00 00 00 00    hdsk_type_4    db    0, 0, 0, 0, 0, 0
  15669. F000:E377  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15670. F000:E37D  00 00 00 00                db    0, 0, 0, 0
  15671. F000:E381  00 00 00 00 00 00    hdsk_type_5    db    0, 0, 0, 0, 0, 0
  15672. F000:E387  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15673. F000:E38D  00 00 00 00                db    0, 0, 0, 0
  15674. F000:E391  00 00 00 00 00 00    hdsk_type_6    db    0, 0, 0, 0, 0, 0
  15675. F000:E397  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15676. F000:E39D  00 00 00 00                db    0, 0, 0, 0
  15677. F000:E3A1  00 00 00 00 00 00    hdsk_type_7    db    0, 0, 0, 0, 0, 0
  15678. F000:E3A7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15679. F000:E3AD  00 00 00 00                db    0, 0, 0, 0
  15680. F000:E3B1  00 00 00 00 00 00    hdsk_type_8    db    0, 0, 0, 0, 0, 0
  15681. F000:E3B7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15682. F000:E3BD  00 00 00 00                db    0, 0, 0, 0
  15683. F000:E3C1  00 00 00 00 00 00    hdsk_type_9    db    0, 0, 0, 0, 0, 0
  15684. F000:E3C7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15685. F000:E3CD  00 00 00 00                db    0, 0, 0, 0
  15686. F000:E3D1  00 00 00 00 00 00    hdsk_type_A    db    0, 0, 0, 0, 0, 0
  15687. F000:E3D7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15688. F000:E3DD  00 00 00 00                db    0, 0, 0, 0
  15689. F000:E3E1  00 00 00 00 00 00    hdsk_type_B    db    0, 0, 0, 0, 0, 0
  15690. F000:E3E7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15691. F000:E3ED  00 00 00 00                db    0, 0, 0, 0
  15692. F000:E3F1  00 00 00 00 00 00    hdsk_type_C    db    0, 0, 0, 0, 0, 0
  15693. F000:E3F7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15694. F000:E3FD  00 00 00 00                db    0, 0, 0, 0
  15695.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 267
  15696.  
  15697. F000:E401  32 01 04 00 00 80    hdsk_type_D    db    32h, 1, 4, 0, 0, 80h
  15698. F000:E407  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15699. F000:E40D  31 01 11 00                db    31h, 1, 11h, 0
  15700. F000:E411  67 02 04 00 00 2C    hdsk_type_E    db    67h, 2, 4, 0, 0, 2Ch
  15701. F000:E417  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15702. F000:E41D  67 02 11 00                db    67h, 2, 11h, 0
  15703. F000:E421  67 02 06 00 00 2C    hdsk_type_F    db    67h, 2, 6, 0, 0, 2Ch
  15704. F000:E427  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15705. F000:E42D  67 02 11 00                db    67h, 2, 11h, 0
  15706. F000:E431  AC 03 08 00 00 00    hdsk_type_10    db    0ACh, 3, 8, 0, 0, 0
  15707. F000:E437  02 00 00 00 00 00            db    2, 0, 0, 0, 0, 0
  15708. F000:E43D  AC 03 11 00                db    0ACh, 3, 11h, 0
  15709. F000:E441  AC 03 06 00 00 00    hdsk_type_11    db    0ACh, 3, 6, 0, 0, 0
  15710. F000:E447  02 00 00 00 00 00            db    2, 0, 0, 0, 0, 0
  15711. F000:E44D  AC 03 11 00                db    0ACh, 3, 11h, 0
  15712. F000:E451  67 02 04 00 00 FF    hdsk_type_12    db    67h, 2, 4, 0, 0, 0FFh
  15713. F000:E457  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15714. F000:E45D  67 02 11 00                db    67h, 2, 11h, 0
  15715. F000:E461  CE 01 08 00 00 00    hdsk_type_13    db    0CEh, 1, 8, 0, 0, 0
  15716. F000:E467  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15717. F000:E46D  FF 01 11 00                db    0FFh, 1, 11h, 0
  15718. F000:E471  DD 02 05 00 00 FF    hdsk_type_14    db    0DDh, 2, 5, 0, 0, 0FFh
  15719. F000:E477  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15720. F000:E47D  DD 02 11 00                db    0DDh, 2, 11h, 0
  15721. F000:E481  84 03 0F 00 00 FF    hdsk_type_15    db    84h, 3, 0Fh, 0, 0, 0FFh
  15722. F000:E487  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15723. F000:E48D  85 03 11 00                db    85h, 3, 11h, 0
  15724. F000:E491  34 03 03 00 00 FF    hdsk_type_16    db    34h, 3, 3, 0, 0, 0FFh
  15725. F000:E497  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15726. F000:E49D  34 03 11 00                db    34h, 3, 11h, 0
  15727. F000:E4A1  57 03 05 00 00 FF    hdsk_type_17    db    57h, 3, 5, 0, 0, 0FFh
  15728. F000:E4A7  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15729. F000:E4AD  57 03 11 00                db    57h, 3, 11h, 0
  15730. F000:E4B1  57 03 07 00 00 FF    hdsk_type_18    db    57h, 3, 7, 0, 0, 0FFh
  15731. F000:E4B7  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15732. F000:E4BD  57 03 11 00                db    57h, 3, 11h, 0
  15733. F000:E4C1  32 01 08 00 00 80    hdsk_type_19    db    32h, 1, 8, 0, 0, 80h
  15734. F000:E4C7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15735. F000:E4CD  3F 01 11 00                db    3Fh, 1, 11h, 0
  15736. F000:E4D1  DD 02 07 00 00 FF    hdsk_type_1A    db    0DDh, 2, 7, 0, 0, 0FFh
  15737. F000:E4D7  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15738. F000:E4DD  DD 02 11 00                db    0DDh, 2, 11h, 0
  15739. F000:E4E1  00 00 00 00 00 00    hdsk_type_1B    db    0, 0, 0, 0, 0, 0
  15740. F000:E4E7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15741. F000:E4ED  00 00 00 00                db    0, 0, 0, 0
  15742. F000:E4F1  64 02 04 00 00 00    hdsk_type_1C    db    64h, 2, 4, 0, 0, 0
  15743. F000:E4F7  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15744. F000:E4FD  97 02 11 00                db    97h, 2, 11h, 0
  15745. F000:E501  D1 03 05 00 00 2C    hdsk_type_1D    db    0D1h, 3, 5, 0, 0, 2Ch
  15746. F000:E507  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15747. F000:E50D  D1 03 11 00                db    0D1h, 3, 11h, 0
  15748. F000:E511  D1 03 07 00 00 FF    hdsk_type_1E    db    0D1h, 3, 7, 0, 0, 0FFh
  15749. F000:E517  FF 00 00 00 00 00            db    0FFh, 0, 0, 0, 0, 0
  15750. F000:E51D  D1 03 11 00                db    0D1h, 3, 11h, 0
  15751. F000:E521  00 04 07 00 00 00    hdsk_type_1F    db    0, 4, 7, 0, 0, 0
  15752. F000:E527  02 00 00 00 00 00            db    2, 0, 0, 0, 0, 0
  15753. F000:E52D  FF 03 11 00                db    0FFh, 3, 11h, 0
  15754.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 268
  15755.  
  15756. F000:E531  DD 02 05 00 00 2C    hdsk_type_20    db    0DDh, 2, 5, 0, 0, 2Ch
  15757. F000:E537  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15758. F000:E53D  DC 02 11 00                db    0DCh, 2, 11h, 0
  15759. F000:E541  DD 02 07 00 00 2C    hdsk_type_21    db    0DDh, 2, 7, 0, 0, 2Ch
  15760. F000:E547  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15761. F000:E54D  DC 02 11 00                db    0DCh, 2, 11h, 0
  15762. F000:E551  DD 02 05 00 00 2C    hdsk_type_22    db    0DDh, 2, 5, 0, 0, 2Ch
  15763. F000:E557  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15764. F000:E55D  DD 02 11 00                db    0DDh, 2, 11h, 0
  15765. F000:E561  32 01 04 00 00 00    hdsk_type_23    db    32h, 1, 4, 0, 0, 0
  15766. F000:E567  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15767. F000:E56D  50 01 11 00                db    50h, 1, 11h, 0
  15768. F000:E571  9D 03 07 00 00 00    hdsk_type_24    db    9Dh, 3, 7, 0, 0, 0
  15769. F000:E577  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15770. F000:E57D  9D 03 11 00                db    9Dh, 3, 11h, 0
  15771. F000:E581  9D 03 09 00 00 FF    hdsk_type_25    db    9Dh, 3, 9, 0, 0, 0FFh
  15772. F000:E587  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15773. F000:E58D  9D 03 11 00                db    9Dh, 3, 11h, 0
  15774. F000:E591  F2 02 07 00 00 F2    hdsk_type_26    db    0F2h, 2, 7, 0, 0, 0F2h
  15775. F000:E597  02 00 00 00 00 00            db    2, 0, 0, 0, 0, 0
  15776. F000:E59D  F2 02 11 00                db    0F2h, 2, 11h, 0
  15777. F000:E5A1  F2 02 0B 00 00 FF    hdsk_type_27    db    0F2h, 2, 0Bh, 0, 0, 0FFh
  15778. F000:E5A7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15779. F000:E5AD  F2 02 11 00                db    0F2h, 2, 11h, 0
  15780. F000:E5B1  BB 02 07 00 00 00    hdsk_type_28    db    0BBh, 2, 7, 0, 0, 0
  15781. F000:E5B7  01 00 00 00 00 00            db    1, 0, 0, 0, 0, 0
  15782. F000:E5BD  BB 02 11 00                db    0BBh, 2, 11h, 0
  15783. F000:E5C1  37 03 0A 00 00 FF    hdsk_type_29    db    37h, 3, 0Ah, 0, 0, 0FFh
  15784. F000:E5C7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15785. F000:E5CD  37 03 11 00                db    37h, 3, 11h, 0
  15786. F000:E5D1  96 03 07 00 00 96    hdsk_type_2A    db    96h, 3, 7, 0, 0, 96h
  15787. F000:E5D7  03 00 00 00 00 00            db    3, 0, 0, 0, 0, 0
  15788. F000:E5DD  96 03 11 00                db    96h, 3, 11h, 0
  15789. F000:E5E1  00 04 0B 00 00 FF    hdsk_type_2B    db    0, 4, 0Bh, 0, 0, 0FFh
  15790. F000:E5E7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15791. F000:E5ED  00 04 11 00                db    0, 4, 11h, 0
  15792. F000:E5F1  00 04 0F 00 00 FF    hdsk_type_2C    db    0, 4, 0Fh, 0, 0, 0FFh
  15793. F000:E5F7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15794. F000:E5FD  00 04 11 00                db    0, 4, 11h, 0
  15795. F000:E601  00 04 05 00 00 00    hdsk_type_2D    db    0, 4, 5, 0, 0, 0
  15796. F000:E607  04 00 00 00 00 00            db    4, 0, 0, 0, 0, 0
  15797. F000:E60D  00 04 11 00                db    0, 4, 11h, 0
  15798. F000:E611  64 02 02 00 00 80    hdsk_type_2E    db    64h, 2, 2, 0, 0, 80h
  15799. F000:E617  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15800. F000:E61D  64 02 11 00                db    64h, 2, 11h, 0
  15801. F000:E621  00 04 09 00 00 FF    hdsk_type_2F    db    0, 4, 9, 0, 0, 0FFh
  15802. F000:E627  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15803. F000:E62D  00 04 11 00                db    0, 4, 11h, 0
  15804. F000:E631  00 04 08 00 00 00    hdsk_type_30    db    0, 4, 8, 0, 0, 0
  15805. F000:E637  02 00 00 00 00 00            db    2, 0, 0, 0, 0, 0
  15806. F000:E63D  00 04 11 00                db    0, 4, 11h, 0
  15807. F000:E641  67 02 08 00 00 80    hdsk_type_31    db    67h, 2, 8, 0, 0, 80h
  15808. F000:E647  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  15809. F000:E64D  67 02 11 00                db    67h, 2, 11h, 0
  15810. F000:E651  DB 03 03 00 00 DB    hdsk_type_32    db    0DBh, 3, 3, 0, 0, 0DBh
  15811. F000:E657  03 00 00 00 00 00            db    3, 0, 0, 0, 0, 0
  15812. F000:E65D  DB 03 11 00                db    0DBh, 3, 11h, 0
  15813.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 269
  15814.  
  15815. F000:E661  DB 03 07 00 00 DB    hdsk_type_33    db    0DBh, 3, 7, 0, 0, 0DBh
  15816. F000:E667  03 00 00 00 00 00            db    3, 0, 0, 0, 0, 0
  15817. F000:E66D  DB 03 11 00                db    0DBh, 3, 11h, 0
  15818. F000:E671  34 03 06 00 00 34    hdsk_type_34    db    34h, 3, 6, 0, 0, 34h
  15819. F000:E677  03 00 00 00 00 00            db    3, 0, 0, 0, 0, 0
  15820. F000:E67D  34 03 11 00                db    34h, 3, 11h, 0
  15821. F000:E681  D1 03 05 00 00 D1    hdsk_type_35    db    0D1h, 3, 5, 0, 0, 0D1h
  15822. F000:E687  03 00 00 00 00 00            db    3, 0, 0, 0, 0, 0
  15823. F000:E68D  D1 03 11 00                db    0D1h, 3, 11h, 0
  15824. F000:E691  D5 03 05 00 00 D5    hdsk_type_36    db    0D5h, 3, 5, 0, 0, 0D5h
  15825. F000:E697  03 00 00 00 00 00            db    3, 0, 0, 0, 0, 0
  15826. F000:E69D  D5 03 11 00                db    0D5h, 3, 11h, 0
  15827. F000:E6A1  3E 03 07 00 00 00    hdsk_type_37    db    3Eh, 3, 7, 0, 0, 0
  15828. F000:E6A7  02 00 00 00 00 00            db    2, 0, 0, 0, 0, 0
  15829. F000:E6AD  3E 03 11 00                db    3Eh, 3, 11h, 0
  15830. F000:E6B1  3E 03 0A 00 00 FF    hdsk_type_38    db    3Eh, 3, 0Ah, 0, 0, 0FFh
  15831. F000:E6B7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15832. F000:E6BD  3E 03 11 00                db    3Eh, 3, 11h, 0
  15833. F000:E6C1  95 03 0F 00 00 FF    hdsk_type_39    db    95h, 3, 0Fh, 0, 0, 0FFh
  15834. F000:E6C7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15835. F000:E6CD  96 03 11 00                db    96h, 3, 11h, 0
  15836. F000:E6D1  C8 04 0F 00 00 FF    hdsk_type_3A    db    0C8h, 4, 0Fh, 0, 0, 0FFh
  15837. F000:E6D7  FF 00 08 00 00 00            db    0FFh, 0, 8, 0, 0, 0
  15838. F000:E6DD  C7 04 11 00                db    0C7h, 4, 11h, 0
  15839. F000:E6E1  0011[00]                db    17 dup (0)
  15840.   
  15841.   
  15842.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  15843.   
  15844. F000:E6F2            int_19h_entry:                    ;  xref F000:FF15
  15845. F000:E6F2  E9 A8CF                jmp    int_19h_bootup        ; (8FC4)
  15846.   
  15847.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  15848.                                         ; █   System Configuration Table  █
  15849.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  15850.   
  15851. F000:E6F5  0008            Config_tbl_size    dw    8            ; Size of table in bytes
  15852. F000:E6F7  FC            Config_model    db    0FCh            ; Model type
  15853.                                         ;   0F8h = 80386 model 70-80 types
  15854.                                         ;   0FCh = 80286 model 50-60 types
  15855.                                         ;          also most 80286/80386
  15856.                                         ;          compatibles
  15857.                                         ;   0FAh = 8088/86 model 25-30 type
  15858. F000:E6F8  01            Config_sub_mode    db    1            ; Sub-Model type
  15859. F000:E6F9  00            Config_BIOS_rev    db    0            ; BIOS revsion number
  15860. F000:E6FA  70            Config_features    db    70h            ; Feature information
  15861.                                         ;   bit 7=1, hard disk uses DMA 3
  15862.                                         ;   bit 6=1, dual interrupt chips
  15863.                                         ;   bit 5=1, has real-time-clock
  15864.                                         ;   bit 4=1, int 15h, ah=4Fh is
  15865.                                         ;            supported (keyboard)
  15866.                                         ;   bit 3=1, external wait support
  15867.                                         ;   bit 2=1, has extended BIOS RAM
  15868.                                         ;   bit 1=1, micro-channel
  15869.                                         ;   bit 0=1, unused
  15870. F000:E6FB  00 00 00 00        Config_info_byt    db    0, 0, 0, 0        ; Information bytes (future use)
  15871. F000:E6FF  002A[00]                db    42 dup (0)
  15872.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 270
  15873.  
  15874.   
  15875.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  15876.                                         ; █        Baud Rate Table        █
  15877.                                         ; █                               █
  15878.                                         ; █   Table of hex divsors  for   █
  15879.                                         ; █   the serial ports.   Table   █
  15880.                                         ; █   divisors for bauds 110 to   █
  15881.                                         ; █   19,200.                     █
  15882.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  15883.   
  15884. F000:E729  0417            baud_rate_tbl    dw    417h            ; 110 Baud rate divisor
  15885. F000:E72B  0300            baud_150    dw    300h
  15886. F000:E72D  0180            baud_300    dw    180h
  15887. F000:E72F  00C0            baud_600    dw    0C0h
  15888. F000:E731  0060            baud_1200    dw    60h
  15889. F000:E733  0030            baud_2400    dw    30h
  15890. F000:E735  0018            baud_4800    dw    18h
  15891. F000:E737  000C            baud_9600    dw    0Ch
  15892.   
  15893.   
  15894.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  15895.   
  15896. F000:E739            int_14h_entry:                    ;  xref F000:FF0B
  15897. F000:E739  E9 11A6                jmp    int_14h_RS232        ; (F8E2)
  15898. F000:E73C  89 71 61 60 09 41            db    89h, 71h, 61h, 60h, 9, 41h
  15899. F000:E742  71 91 F7 38 11 40            db    71h, 91h, 0F7h, 38h, 11h, 40h
  15900. F000:E748  80 C0 B8 C0 F7 01            db    80h, 0C0h, 0B8h, 0C0h, 0F7h, 1
  15901. F000:E74E  62 22 8A 42 12 02            db    62h, 22h, 8Ah, 42h, 12h, 2
  15902. F000:E754  6A F7 61 22 32 02            db    6Ah, 0F7h, 61h, 22h, 32h, 2
  15903. F000:E75A  9A 8A 22 6A 1A 92            db    9Ah, 8Ah, 22h, 6Ah, 1Ah, 92h
  15904. F000:E760  F7 41 6A 12 5F 47            db    0F7h, 41h, 6Ah, 12h, 5Fh, 47h
  15905. F000:E766  5F 47 FE D5 A5 3D            db    5Fh, 47h, 0FEh, 0D5h, 0A5h, 3Dh
  15906. F000:E76C  D1 45 D2 B8 02 90            db    0D1h, 45h, 0D2h, 0B8h, 2, 90h
  15907. F000:E772  60 DA 41 C4 76 E8            db    60h, 0DAh, 41h, 0C4h, 76h, 0E8h
  15908. F000:E778  8F 1D AD E0 19 83            db    8Fh, 1Dh, 0ADh, 0E0h, 19h, 83h
  15909. F000:E77E  5D 12 11 04 DA F4            db    5Dh, 12h, 11h, 4, 0DAh, 0F4h
  15910. F000:E784  C3 8D BE 72 FA D0            db    0C3h, 8Dh, 0BEh, 72h, 0FAh, 0D0h
  15911. F000:E78A  E4 19 E7 B3 AF 90            db    0E4h, 19h, 0E7h, 0B3h, 0AFh, 90h
  15912. F000:E790  01 20 0E 0D DA 02            db    1, 20h, 0Eh, 0Dh, 0DAh, 2
  15913. F000:E796  C3 F4 E0 AF 10 D1            db    0C3h, 0F4h, 0E0h, 0AFh, 10h, 0D1h
  15914. F000:E79C  FC 04 FD 43 79 CD            db    0FCh, 4, 0FDh, 43h, 79h, 0CDh
  15915. F000:E7A2  31 BC FA 81 D6 CF            db    31h, 0BCh, 0FAh, 81h, 0D6h, 0CFh
  15916. F000:E7A8  BF 54 89 DE BD 83            db    0BFh, 54h, 89h, 0DEh, 0BDh, 83h
  15917. F000:E7AE  1D A2 BC 53 C7 3B            db    1Dh, 0A2h, 0BCh, 53h, 0C7h, 3Bh
  15918. F000:E7B4  BB F3 FD 43 77 DA            db    0BBh, 0F3h, 0FDh, 43h, 77h, 0DAh
  15919. F000:E7BA  B4 F4 90 38 02 1D            db    0B4h, 0F4h, 90h, 38h, 2, 1Dh
  15920. F000:E7C0  80 F5 21 D7 79 D2            db    80h, 0F5h, 21h, 0D7h, 79h, 0D2h
  15921. F000:E7C6  4B F2 8D C7 B4 12            db    4Bh, 0F2h, 8Dh, 0C7h, 0B4h, 12h
  15922. F000:E7CC  99 F7 37 F1 7F F8            db    99h, 0F7h, 37h, 0F1h, 7Fh, 0F8h
  15923. F000:E7D2  FB 42 9F F8 42 89            db    0FBh, 42h, 9Fh, 0F8h, 42h, 89h
  15924. F000:E7D8  33 FD D8 DA 24 17            db    33h, 0FDh, 0D8h, 0DAh, 24h, 17h
  15925. F000:E7DE  D7 BF 94 B8 7F 1F            db    0D7h, 0BFh, 94h, 0B8h, 7Fh, 1Fh
  15926. F000:E7E4  97 CE 77 DC                db    97h, 0CEh, 77h, 0DCh
  15927. F000:E7E8  0046[00]                db    70 dup (0)
  15928.   
  15929.   
  15930.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  15931.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 271
  15932.  
  15933.   
  15934. F000:E82E            int_16h_entry:                    ;  xref F000:FF0F
  15935. F000:E82E  E9 B84B                jmp    int_16h_keybd        ; (A07C)
  15936.   
  15937.                 int_18h_basic    endp
  15938.   
  15939.   
  15940.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 0Eh ▒▒▒▒▒
  15941.                 ;
  15942.                 ;   FLOPPY DISK    CONTROLLER (called by hardware 8259-1, IRQ 6)
  15943.   
  15944. F000:E831            int_0Eh_floppy    proc    near            ;  xref F000:EF57
  15945. F000:E831  FB                    sti                ; Enable interrupts
  15946. F000:E832  50                    push    ax
  15947. F000:E833  1E                    push    ds
  15948. F000:E834  6A 40                push    40h
  15949. F000:E836  1F                    pop    ds
  15950.                         assume    ds:seg_b
  15951. F000:E837  80 0E 003E 80            or    dsk_recal_stat,80h    ; (0040:003E=0)
  15952. F000:E83C  B0 20                mov    al,20h            ; ' '
  15953. F000:E83E  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  15954.                                         ;  al = 20h, end of interrupt
  15955. F000:E840  B8 9101                mov    ax,9101h
  15956. F000:E843  EB 18                jmp    short loc_1227        ; (E85D)
  15957.   
  15958.                 int_0Eh_floppy    endp
  15959.   
  15960.   
  15961.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 76h ▒▒▒▒▒
  15962.                 ;
  15963.                 ;   HARD DISK CONTROLLER (called by hardware 8259-2 IRQ 14)
  15964.                 ;
  15965.                 ;      When the    hard disk controller has completed its task, it    signals
  15966.                 ;      completion though hardware activation of int 76h.  The status in
  15967.                 ;      hdsk_int_flags is set to "done", a value of 0FFh.  Interrupt 15,
  15968.                 ;      function    91h may    also be called to signal the interrupt is done.
  15969.   
  15970. F000:E845            int_76h_hddone    proc    near            ;  xref F000:FF2F
  15971. F000:E845  FB                    sti                ; Enable interrupts
  15972. F000:E846  50                    push    ax
  15973. F000:E847  1E                    push    ds
  15974. F000:E848  6A 40                push    40h
  15975. F000:E84A  1F                    pop    ds
  15976. F000:E84B  C6 06 008E FF            mov    hdsk_int_flags,0FFh    ; (0040:008E=0)
  15977. F000:E850  B0 20                mov    al,20h            ; ' '
  15978. F000:E852  E6 A0                out    0A0h,al            ; port 0A0h, 8259-2 int command
  15979.                                         ;  al = 20h, end of interrupt
  15980. F000:E854  EB 00                jmp    short loc_1225        ; (E856)
  15981. F000:E856            loc_1225:                    ;  xref F000:E854
  15982. F000:E856  EB 00                jmp    short loc_1226        ; (E858)
  15983. F000:E858            loc_1226:                    ;  xref F000:E856
  15984. F000:E858  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  15985.                                         ;  al = 20h, end of interrupt
  15986. F000:E85A  B8 9100                mov    ax,9100h
  15987. F000:E85D            loc_1227:                    ;  xref F000:E843
  15988. F000:E85D  1F                    pop    ds
  15989. F000:E85E  CD 15                int    15h            ; General services, ah=func 91h
  15990.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 272
  15991.  
  15992.                                         ;  interrupt complete, al=type
  15993. F000:E860  58                    pop    ax
  15994. F000:E861  CF                    iret                ; Interrupt return
  15995.                 int_76h_hddone    endp
  15996.   
  15997. F000:E862  001C[00]                db    28 dup (0)
  15998. F000:E87E  52 3A 45 46 38 1D            db    52h, 3Ah, 45h, 46h, 38h, 1Dh
  15999. F000:E884  2A 36 80 40 20 10            db    2Ah, 36h, 80h, 40h, 20h, 10h
  16000. F000:E88A  08 04 02 01                db    8, 4, 2, 1
  16001.   
  16002.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16003.                 ;                   SUBROUTINE
  16004.                 ;
  16005.                 ;         Called from:     F000:9CC0
  16006.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16007.   
  16008.                 sub_234        proc    near
  16009. F000:E88E  FA                    cli                ; Disable interrupts
  16010. F000:E88F  50                    push    ax
  16011. F000:E890  1E                    push    ds
  16012. F000:E891  3C 4A                cmp    al,4Ah            ; 'J'
  16013. F000:E893  75 05                jne    short loc_1228        ; Jump if not equal
  16014. F000:E895  E8 0016                call    sub_235            ; (E8AE)
  16015. F000:E898  EB 10                jmp    short loc_1231        ; (E8AA)
  16016. F000:E89A            loc_1228:                    ;  xref F000:E893
  16017. F000:E89A  3C 4E                cmp    al,4Eh            ; 'N'
  16018. F000:E89C  75 05                jne    short loc_1229        ; Jump if not equal
  16019. F000:E89E  E8 0012                call    sub_236            ; (E8B3)
  16020. F000:E8A1  EB 07                jmp    short loc_1231        ; (E8AA)
  16021. F000:E8A3            loc_1229:                    ;  xref F000:E89C
  16022. F000:E8A3  3C 2B                cmp    al,2Bh            ; '+'
  16023. F000:E8A5  75 03                jne    short loc_1231        ; Jump if not equal
  16024. F000:E8A7  EB 00                jmp    short loc_1230        ; (E8A9)
  16025. F000:E8A9            loc_1230:                    ;  xref F000:E8A7
  16026. F000:E8A9  90                    nop                ;
  16027. F000:E8AA            loc_1231:                    ;  xref F000:E898, E8A1, E8A5
  16028. F000:E8AA  1F                    pop    ds
  16029. F000:E8AB  58                    pop    ax
  16030. F000:E8AC  FB                    sti                ; Enable interrupts
  16031. F000:E8AD  C3                    retn
  16032.                 sub_234        endp
  16033.   
  16034.   
  16035.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16036.                 ;                   SUBROUTINE
  16037.                 ;
  16038.                 ;         Called from:     F000:E895
  16039.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16040.   
  16041.                 sub_235        proc    near
  16042. F000:E8AE  BB 0000                mov    bx,0
  16043. F000:E8B1  EB 03                jmp    short loc_1232        ; (E8B6)
  16044.   
  16045.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16046.                 ;
  16047.                 ;         Called from:     F000:E89E
  16048.   
  16049.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 273
  16050.  
  16051.                 sub_236:
  16052. F000:E8B3  BB 0001                mov    bx,1
  16053. F000:E8B6            loc_1232:                    ;  xref F000:E8B1
  16054. F000:E8B6  BE E2C8                mov    si,0E2C8h
  16055.                         assume    ds:seg_a
  16056. F000:E8B9  F6 06 0017 03            test    byte ptr vector_5h_seg+1,3    ; (0000:0017=0F0h)
  16057. F000:E8BE  74 09                jz    short loc_1234        ; Jump if zero
  16058. F000:E8C0  3C 4A                cmp    al,4Ah            ; 'J'
  16059. F000:E8C2  75 00                jne    short loc_1233        ; Jump if not equal
  16060. F000:E8C4            loc_1233:                    ;  xref F000:E8C2
  16061. F000:E8C4  BE E2CC                mov    si,0E2CCh
  16062. F000:E8C7  EB 03                jmp    short loc_1235        ; (E8CC)
  16063. F000:E8C9            loc_1234:                    ;  xref F000:E8BE
  16064. F000:E8C9  E9 008E                jmp    loc_1249        ; (E95A)
  16065. F000:E8CC            loc_1235:                    ;  xref F000:E8C7, E97D
  16066. F000:E8CC  2E: 8A 18                mov    bl,cs:[bx+si]
  16067. F000:E8CF  0A DB                or    bl,bl            ; Zero ?
  16068. F000:E8D1  75 03                jnz    short loc_1237        ; Jump if not zero
  16069. F000:E8D3            loc_1236:                    ;  xref F000:E8D9
  16070. F000:E8D3  E9 0082                jmp    loc_1248        ; (E958)
  16071. F000:E8D6            loc_1237:                    ;  xref F000:E8D1
  16072. F000:E8D6  E8 B63E                call    sub_70            ; (9F17)
  16073. F000:E8D9  75 F8                jnz    loc_1236        ; Jump if not zero
  16074. F000:E8DB  8A C3                mov    al,bl
  16075. F000:E8DD  BA 00FB                mov    dx,0FBh
  16076. F000:E8E0  3C B4                cmp    al,0B4h
  16077. F000:E8E2  74 13                je    short loc_1238        ; Jump if equal
  16078. F000:E8E4  B6 04                mov    dh,4
  16079. F000:E8E6  3C BC                cmp    al,0BCh
  16080. F000:E8E8  74 0D                je    short loc_1238        ; Jump if equal
  16081. F000:E8EA  BA 00F7                mov    dx,0F7h
  16082. F000:E8ED  3C B5                cmp    al,0B5h
  16083. F000:E8EF  74 06                je    short loc_1238        ; Jump if equal
  16084. F000:E8F1  B6 08                mov    dh,8
  16085. F000:E8F3  3C BD                cmp    al,0BDh
  16086. F000:E8F5  75 0F                jne    short loc_1239        ; Jump if not equal
  16087. F000:E8F7            loc_1238:                    ;  xref F000:E8E2, E8E8, E8EF
  16088. F000:E8F7  B8 3737                mov    ax,3737h
  16089. F000:E8FA  E8 05A2                call    sub_257            ; (EE9F)
  16090. F000:E8FD  22 C2                and    al,dl
  16091. F000:E8FF  0A C6                or    al,dh
  16092. F000:E901  86 C4                xchg    al,ah
  16093. F000:E903  E8 05A8                call    sub_258            ; (EEAE)
  16094. F000:E906            loc_1239:                    ;  xref F000:E8F5
  16095. F000:E906  E4 21                in    al,21h            ; port 21h, 8259-1 int IMR
  16096. F000:E908  EB 00                jmp    short loc_1240        ; (E90A)
  16097. F000:E90A            loc_1240:                    ;  xref F000:E908
  16098. F000:E90A  EB 00                jmp    short loc_1241        ; (E90C)
  16099. F000:E90C            loc_1241:                    ;  xref F000:E90A
  16100. F000:E90C  8A D0                mov    dl,al
  16101. F000:E90E  E4 A1                in    al,0A1h            ; port 0A1h, 8259-2 int IMR
  16102. F000:E910  EB 00                jmp    short loc_1242        ; (E912)
  16103. F000:E912            loc_1242:                    ;  xref F000:E910
  16104. F000:E912  EB 00                jmp    short loc_1243        ; (E914)
  16105. F000:E914            loc_1243:                    ;  xref F000:E912
  16106. F000:E914  8A F0                mov    dh,al
  16107. F000:E916  B0 FD                mov    al,0FDh
  16108.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 274
  16109.  
  16110. F000:E918  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  16111. F000:E91A  EB 00                jmp    short loc_1244        ; (E91C)
  16112. F000:E91C            loc_1244:                    ;  xref F000:E91A
  16113. F000:E91C  EB 00                jmp    short loc_1245        ; (E91E)
  16114. F000:E91E            loc_1245:                    ;  xref F000:E91C
  16115. F000:E91E  B0 FF                mov    al,0FFh
  16116. F000:E920  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  16117.                                         ;  al = 0FFh, inhibit interrupts
  16118. F000:E922  33 C0                xor    ax,ax            ; Zero register
  16119. F000:E924  8E D8                mov    ds,ax
  16120. F000:E926  BE E93F                mov    si,0E93Fh
  16121. F000:E929  87 36 0024                xchg    si,vector_9h_off    ; (0000:0024=452h)
  16122. F000:E92D  8C CF                mov    di,cs
  16123. F000:E92F  87 3E 0026                xchg    di,vector_9h_seg    ; (0000:0026=0D3D1h)
  16124. F000:E933  B0 20                mov    al,20h            ; ' '
  16125. F000:E935  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  16126.                                         ;  al = 20h, end of interrupt
  16127. F000:E937  8A C3                mov    al,bl
  16128. F000:E939  FB                    sti                ; Enable interrupts
  16129. F000:E93A  E6 64                out    64h,al            ; port 64h, kybd cntrlr functn
  16130. F000:E93C            loc_1246:                    ;  xref F000:E93D
  16131. F000:E93C  F4                    hlt                ; Halt processor
  16132. F000:E93D  EB FD                jmp    short loc_1246        ; (E93C)
  16133. F000:E93F  E4 60 89 3E 26 00            db    0E4h, 60h, 89h, 3Eh, 26h, 0
  16134. F000:E945  89 36 24 00 8A C6            db    89h, 36h, 24h, 0, 8Ah, 0C6h
  16135. F000:E94B  E6 A1 EB 00 EB 00            db    0E6h, 0A1h, 0EBh, 0, 0EBh, 0
  16136. F000:E951            loc_1247:
  16137. F000:E951  8A C2                mov    al,dl
  16138. F000:E953  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  16139. F000:E955  83 C4 06                add    sp,6
  16140. F000:E958            loc_1248:                    ;  xref F000:E8D3
  16141. F000:E958  FB                    sti                ; Enable interrupts
  16142. F000:E959  C3                    retn
  16143. F000:E95A            loc_1249:                    ;  xref F000:E8C9
  16144. F000:E95A  83 FB 00                cmp    bx,0
  16145. F000:E95D  74 05                je    short loc_1250        ; Jump if equal
  16146. F000:E95F  B0 F5                mov    al,0F5h
  16147. F000:E961  EB 03                jmp    short loc_1251        ; (E966)
  16148. F000:E963  90                    db    90h
  16149. F000:E964            loc_1250:                    ;  xref F000:E95D
  16150. F000:E964  B0 F4                mov    al,0F4h
  16151. F000:E966            loc_1251:                    ;  xref F000:E961
  16152. F000:E966  E6 FB                out    0FBh,al            ; port 0FBh
  16153. F000:E968  EB 00                jmp    short loc_1252        ; (E96A)
  16154. F000:E96A            loc_1252:                    ;  xref F000:E968
  16155. F000:E96A  EB 00                jmp    short loc_1253        ; (E96C)
  16156. F000:E96C            loc_1253:                    ;  xref F000:E96A
  16157. F000:E96C  52                    push    dx
  16158. F000:E96D  32 E4                xor    ah,ah            ; Zero register
  16159. F000:E96F  8B D0                mov    dx,ax
  16160. F000:E971  EE                    out    dx,al            ; port 0F4h
  16161. F000:E972  EB 00                jmp    short loc_1254        ; (E974)
  16162. F000:E974            loc_1254:                    ;  xref F000:E972
  16163. F000:E974  EB 00                jmp    short loc_1255        ; (E976)
  16164. F000:E976            loc_1255:                    ;  xref F000:E974
  16165. F000:E976  E6 F9                out    0F9h,al            ; port 0F9h
  16166. F000:E978  EB 00                jmp    short loc_1256        ; (E97A)
  16167.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 275
  16168.  
  16169. F000:E97A            loc_1256:                    ;  xref F000:E978
  16170. F000:E97A  EB 00                jmp    short loc_1257        ; (E97C)
  16171. F000:E97C            loc_1257:                    ;  xref F000:E97A
  16172. F000:E97C  5A                    pop    dx
  16173. F000:E97D  E9 FF4C                jmp    loc_1235        ; (E8CC)
  16174.                 sub_235        endp
  16175.   
  16176. F000:E980  0007[00]                db    7 dup (0)
  16177.   
  16178.   
  16179.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  16180.   
  16181. F000:E987            int_9_entry:                    ;  xref F000:FEF5
  16182. F000:E987  E9 B176        ;*        jmp    int_9_keyboard        ;*(9B00)
  16183. F000:E987  E9 76 B1                db    0E9h, 76h, 0B1h
  16184.   
  16185.   
  16186.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 2 ▒▒▒▒▒▒▒
  16187.                 ;
  16188.                 ;   NON-MASKABLE HARDWARE INTERRUPT
  16189.                 ;
  16190.                 ;      This function is    called in the event of a memory parity error or may
  16191.                 ;      occur in    the event of other hardware problems or failures (depends on
  16192.                 ;      the specific manufacturer's hardware).  Displays the appropriate
  16193.                 ;      error message and halts the processor.
  16194.   
  16195. F000:E98A            int_2_NMI    proc    near            ;  xref F000:E2C3
  16196. F000:E98A  50                    push    ax
  16197. F000:E98B  B0 8D                mov    al,8Dh
  16198. F000:E98D  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  16199. F000:E98F  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  16200. F000:E991  A8 C0                test    al,0C0h
  16201. F000:E993  75 0A                jnz    short loc_1260        ; Jump if not zero
  16202. F000:E995  B0 0D                mov    al,0Dh
  16203. F000:E997  EB 00                jmp    short loc_1258        ; (E999)
  16204. F000:E999            loc_1258:                    ;  xref F000:E997
  16205. F000:E999  EB 00                jmp    short loc_1259        ; (E99B)
  16206. F000:E99B            loc_1259:                    ;  xref F000:E999
  16207. F000:E99B  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  16208.                                         ;  al = 0Dh, status register D
  16209. F000:E99D  58                    pop    ax
  16210. F000:E99E  CF                    iret                ; Interrupt return
  16211.                 int_2_NMI    endp
  16212.   
  16213. F000:E99F            loc_1260:                    ;  xref F000:E993
  16214. F000:E99F  33 C0                xor    ax,ax            ; Zero register
  16215. F000:E9A1  8E D8                mov    ds,ax
  16216. F000:E9A3  8B 16 0413                mov    dx,main_ram_size_    ; (0000:0413=280h)
  16217. F000:E9A7  CD 10                int    10h            ; Video display   ah=functn 00h
  16218.                                         ;  set display mode in al
  16219. F000:E9A9  FA                    cli                ; Disable interrupts
  16220. F000:E9AA  FC                    cld                ; Clear direction
  16221. F000:E9AB  E8 A495                call    sub_33            ; (8E43)
  16222. F000:E9AE  33 DB                xor    bx,bx            ; Zero register
  16223. F000:E9B0  33 F6                xor    si,si            ; Zero register
  16224. F000:E9B2            loc_1261:                    ;  xref F000:E9CB
  16225. F000:E9B2  8E DB                mov    ds,bx
  16226.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 276
  16227.  
  16228. F000:E9B4  B9 8000                mov    cx,8000h
  16229.   
  16230. F000:E9B7            locloop_1262:                    ;  xref F000:E9C2
  16231. F000:E9B7  AD                    lodsw                ; String [si] to ax
  16232. F000:E9B8  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  16233. F000:E9BA  A8 80                test    al,80h
  16234. F000:E9BC  75 15                jnz    short loc_1263        ; Jump if not zero
  16235. F000:E9BE  A8 40                test    al,40h            ; '@'
  16236. F000:E9C0  75 16                jnz    short loc_1264        ; Jump if not zero
  16237. F000:E9C2  E2 F3                loop    locloop_1262        ; Loop if cx > 0
  16238.   
  16239. F000:E9C4  81 C3 1000                add    bx,1000h
  16240. F000:E9C8  83 EA 40                sub    dx,40h
  16241. F000:E9CB  73 E5                jnc    loc_1261        ; Jump if carry=0
  16242. F000:E9CD  BE 7EA8                mov    si,7EA8h
  16243. F000:E9D0  E9 A3C5                jmp    loc_230            ; (8D98)
  16244. F000:E9D3            loc_1263:                    ;  xref F000:E9BC
  16245. F000:E9D3  BF 7E69                mov    di,7E69h
  16246. F000:E9D6  EB 03                jmp    short loc_1265        ; (E9DB)
  16247. F000:E9D8            loc_1264:                    ;  xref F000:E9C0
  16248. F000:E9D8  BF 7E7F                mov    di,7E7Fh
  16249. F000:E9DB            loc_1265:                    ;  xref F000:E9D6
  16250. F000:E9DB  87 F7                xchg    si,di
  16251. F000:E9DD  E8 A3D9                call    sub_27            ; (8DB9)
  16252. F000:E9E0  BE 7E96                mov    si,7E96h
  16253. F000:E9E3  E8 A3D3                call    sub_27            ; (8DB9)
  16254. F000:E9E6  8C D8                mov    ax,ds
  16255. F000:E9E8  E8 0015                call    sub_237            ; (EA00)
  16256. F000:E9EB  B0 3A                mov    al,3Ah            ; ':'
  16257. F000:E9ED  E8 A3E2                call    sub_29            ; (8DD2)
  16258. F000:E9F0  8B C7                mov    ax,di
  16259. F000:E9F2  E8 000B                call    sub_237            ; (EA00)
  16260. F000:E9F5  B0 29                mov    al,29h            ; ')'
  16261. F000:E9F7  E8 A3D8                call    sub_29            ; (8DD2)
  16262. F000:E9FA  BE EA25                mov    si,0EA25h
  16263. F000:E9FD  E9 A398                jmp    loc_230            ; (8D98)
  16264.   
  16265.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16266.                 ;                   SUBROUTINE
  16267.                 ;
  16268.                 ;         Called from:     F000:E9E8, E9F2
  16269.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16270.   
  16271.                 sub_237        proc    near
  16272. F000:EA00  50                    push    ax
  16273. F000:EA01  8A C4                mov    al,ah
  16274. F000:EA03  E8 0005                call    sub_238            ; (EA0B)
  16275. F000:EA06  58                    pop    ax
  16276. F000:EA07  E8 0001                call    sub_238            ; (EA0B)
  16277. F000:EA0A  C3                    retn
  16278.                 sub_237        endp
  16279.   
  16280.   
  16281.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16282.                 ;                   SUBROUTINE
  16283.                 ;
  16284.                 ;         Called from:     F000:EA03, EA07
  16285.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 277
  16286.  
  16287.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16288.   
  16289.                 sub_238        proc    near
  16290. F000:EA0B  50                    push    ax
  16291. F000:EA0C  C1 E8 04                shr    ax,4            ; Shift w/zeros fill
  16292. F000:EA0F  E8 0005                call    sub_239            ; (EA17)
  16293. F000:EA12  58                    pop    ax
  16294. F000:EA13  E8 0001                call    sub_239            ; (EA17)
  16295. F000:EA16  C3                    retn
  16296.                 sub_238        endp
  16297.   
  16298.   
  16299.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16300.                 ;                   SUBROUTINE
  16301.                 ;
  16302.                 ;         Called from:     F000:EA0F, EA13
  16303.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16304.   
  16305.                 sub_239        proc    near
  16306. F000:EA17  24 0F                and    al,0Fh
  16307. F000:EA19  3C 0A                cmp    al,0Ah
  16308. F000:EA1B  72 02                jb    short loc_1266        ; Jump if below
  16309. F000:EA1D  04 07                add    al,7
  16310. F000:EA1F            loc_1266:                    ;  xref F000:EA1B
  16311. F000:EA1F  04 30                add    al,30h            ; '0'
  16312. F000:EA21  E8 A3AE                call    sub_29            ; (8DD2)
  16313. F000:EA24  C3                    retn
  16314.                 sub_239        endp
  16315.   
  16316. F000:EA25  0D 0A 00                db    0Dh, 0Ah, 0
  16317.   
  16318.   
  16319.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 70h ▒▒▒▒▒
  16320.                 ;
  16321.                 ;   REAL-TIME CLOCK  (called by hardware 8259-2, IRQ 8)
  16322.                 ;
  16323.                 ;      This interrupt services the real-time clock hardware.  The hardware
  16324.                 ;      supports    2 modes    of operation, an interrupt at a specific 24 hour
  16325.                 ;      interval    (i.e 9:42 am), or repeatedly every 0.976 ms (1,024 Khz).
  16326.                 ;      Both modes can operate at the same time if needed.
  16327.                 ;
  16328.                 ;      In the 24 hour alarm mode, the interrupt is vectored here by hardware
  16329.                 ;      and interrupt 4Ah is called to alert the application program of the
  16330.                 ;      alarm.  Int 4Ah is not handled by the BIOS other than to    return, and
  16331.                 ;      is normally revectored by a particular application using    the alarm.
  16332.                 ;
  16333.                 ;      When repeating interrupt mode is active, the 32-bit microsecond
  16334.                 ;      counter consisting of timer_clk_low and timer_clk_hi is decremented
  16335.                 ;      by 976 us on every interrupt.  When the timer reaches zero, the
  16336.                 ;      byte pointed to by the offset @timer_wait_off and and segment
  16337.                 ;      @timer_wait_seg is set to 80h (this pointer is set by an    application
  16338.                 ;      program through int 1Ah function ah=6).
  16339.   
  16340. F000:EA28            int_70h_clock    proc    near            ;  xref F000:FF23
  16341. F000:EA28  1E                    push    ds
  16342. F000:EA29  50                    push    ax
  16343. F000:EA2A  57                    push    di
  16344.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 278
  16345.  
  16346. F000:EA2B            loc_1267:                    ;  xref F000:EA65, EA6D
  16347. F000:EA2B  E8 044D                call    sub_253            ; (EE7B)
  16348. F000:EA2E  A8 60                test    al,60h            ; '`'
  16349. F000:EA30  74 3D                jz    short loc_1269        ; Jump if zero
  16350. F000:EA32  8A E0                mov    ah,al
  16351. F000:EA34  E8 043E                call    sub_252            ; (EE75)
  16352. F000:EA37  22 C4                and    al,ah
  16353. F000:EA39  50                    push    ax
  16354. F000:EA3A  A8 40                test    al,40h            ; '@'
  16355. F000:EA3C  74 24                jz    short loc_1268        ; Jump if zero
  16356. F000:EA3E  6A 40                push    40h
  16357. F000:EA40  1F                    pop    ds
  16358.                         assume    ds:seg_b
  16359. F000:EA41  81 2E 009C 03D0            sub    timer_clk_low,3D0h    ; (0040:009C=0)
  16360. F000:EA47  83 1E 009E 00            sbb    timer_clk_hi,0        ; (0040:009E=0)
  16361. F000:EA4C  73 14                jnc    short loc_1268        ; Jump if carry=0
  16362. F000:EA4E  E8 0424                call    sub_252            ; (EE75)
  16363. F000:EA51  24 BF                and    al,0BFh
  16364. F000:EA53  E8 042B                call    sub_254            ; (EE81)
  16365. F000:EA56  C6 06 00A0 00            mov    byte ptr ds:data_62e,0    ; (C000:00A0=6Fh)
  16366. F000:EA5B  C5 3E 0098                lds    di,dword ptr ds:data_61e    ; (C000:0098=6175h) Load 32 bit ptr
  16367. F000:EA5F  C6 05 80                mov    byte ptr [di],80h
  16368. F000:EA62            loc_1268:                    ;  xref F000:EA3C, EA4C
  16369. F000:EA62  58                    pop    ax
  16370. F000:EA63  A8 20                test    al,20h            ; ' '
  16371. F000:EA65  74 C4                jz    loc_1267        ; Jump if zero
  16372. F000:EA67  FB                    sti                ; Enable interrupts
  16373. F000:EA68  52                    push    dx
  16374. F000:EA69  CD 4A                int    4Ah            ; RTC Alarm occurred
  16375. F000:EA6B  5A                    pop    dx
  16376. F000:EA6C  FA                    cli                ; Disable interrupts
  16377. F000:EA6D  EB BC                jmp    short loc_1267        ; (EA2B)
  16378. F000:EA6F            loc_1269:                    ;  xref F000:EA30
  16379. F000:EA6F  B0 20                mov    al,20h            ; ' '
  16380. F000:EA71  E6 A0                out    0A0h,al            ; port 0A0h, 8259-2 int command
  16381.                                         ;  al = 20h, end of interrupt
  16382. F000:EA73  EB 00                jmp    short loc_1270        ; (EA75)
  16383. F000:EA75            loc_1270:                    ;  xref F000:EA73
  16384. F000:EA75  EB 00                jmp    short loc_1271        ; (EA77)
  16385. F000:EA77            loc_1271:                    ;  xref F000:EA75
  16386. F000:EA77  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  16387.                                         ;  al = 20h, end of interrupt
  16388. F000:EA79  5F                    pop    di
  16389. F000:EA7A  58                    pop    ax
  16390. F000:EA7B  1F                    pop    ds
  16391. F000:EA7C  CF                    iret                ; Interrupt return
  16392.                 int_70h_clock    endp
  16393.   
  16394.   
  16395.   
  16396.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ unused ▒▒▒▒▒
  16397.                 ;
  16398.                 ;   Unused interrupt vector termination
  16399.                 ;
  16400.                 ;      This routine processes invalid and unused interrupt requests.  The
  16401.                 ;      hardware    IRQ number is loaded into gen_int_occured, and the interrupt
  16402.                 ;      cleared.     For software calls to an unused interrupt, a value 0FFh is
  16403.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 279
  16404.  
  16405.                 ;      loaded into gen_int_occured, and the routine returns to the caller
  16406.                 ;      without changing    registers.
  16407.                 ;
  16408.                 ;      Alternatively, some systems simply return (iret).
  16409.   
  16410. F000:EA7D            int_unused    proc    near            ;  xref F000:EB26, FEF7, FEF9, FEFB
  16411.                                         ;            FEFD, FF27, FF29, FF2B
  16412. F000:EA7D  50                    push    ax
  16413. F000:EA7E  52                    push    dx
  16414. F000:EA7F  BA 0020                mov    dx,20h
  16415. F000:EA82  E8 0041                call    sub_241            ; (EAC6)
  16416. F000:EA85  74 20                jz    short loc_1273        ; Jump if zero
  16417. F000:EA87  50                    push    ax
  16418. F000:EA88  B2 A0                mov    dl,0A0h
  16419. F000:EA8A  E8 0039                call    sub_241            ; (EAC6)
  16420. F000:EA8D  74 0D                jz    short loc_1272        ; Jump if zero
  16421. F000:EA8F  B2 A1                mov    dl,0A1h
  16422. F000:EA91  E8 001F                call    sub_240            ; (EAB3)
  16423. F000:EA94  B0 20                mov    al,20h            ; ' '
  16424. F000:EA96  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  16425.                                         ;  al = 20h, end of interrupt
  16426. F000:EA98  58                    pop    ax
  16427. F000:EA99  40                    inc    ax
  16428. F000:EA9A  EB 0B                jmp    short loc_1273        ; (EAA7)
  16429. F000:EA9C            loc_1272:                    ;  xref F000:EA8D
  16430. F000:EA9C  58                    pop    ax
  16431. F000:EA9D  24 FB                and    al,0FBh
  16432. F000:EA9F  B2 21                mov    dl,21h            ; '!'
  16433. F000:EAA1  E8 000F                call    sub_240            ; (EAB3)
  16434. F000:EAA4  8A C4                mov    al,ah
  16435. F000:EAA6  40                    inc    ax
  16436. F000:EAA7            loc_1273:                    ;  xref F000:EA85, EA9A
  16437. F000:EAA7  48                    dec    ax
  16438. F000:EAA8  1E                    push    ds
  16439. F000:EAA9  6A 40                push    40h
  16440. F000:EAAB  1F                    pop    ds
  16441. F000:EAAC  A2 006B                mov    gen_int_occured,al    ; (0040:006B=0FFh)
  16442. F000:EAAF  1F                    pop    ds
  16443. F000:EAB0  5A                    pop    dx
  16444. F000:EAB1  58                    pop    ax
  16445. F000:EAB2  CF                    iret                ; Interrupt return
  16446.                 int_unused    endp
  16447.   
  16448.   
  16449.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16450.                 ;                   SUBROUTINE
  16451.                 ;
  16452.                 ;         Called from:     F000:EA91, EAA1
  16453.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16454.   
  16455.                 sub_240        proc    near
  16456. F000:EAB3  8A E0                mov    ah,al
  16457. F000:EAB5  EC                    in    al,dx            ; port 0A1h, 8259-2 int IMR
  16458. F000:EAB6  0A C4                or    al,ah
  16459. F000:EAB8  EB 00                jmp    short loc_1274        ; (EABA)
  16460. F000:EABA            loc_1274:                    ;  xref F000:EAB8
  16461. F000:EABA  EB 00                jmp    short loc_1275        ; (EABC)
  16462.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 280
  16463.  
  16464. F000:EABC            loc_1275:                    ;  xref F000:EABA
  16465. F000:EABC  EE                    out    dx,al            ; port 0A1h, 8259-2 int comands
  16466. F000:EABD  B0 20                mov    al,20h            ; ' '
  16467. F000:EABF  4A                    dec    dx
  16468. F000:EAC0  EB 00                jmp    short loc_1276        ; (EAC2)
  16469. F000:EAC2            loc_1276:                    ;  xref F000:EAC0
  16470. F000:EAC2  EB 00                jmp    short loc_1277        ; (EAC4)
  16471. F000:EAC4            loc_1277:                    ;  xref F000:EAC2
  16472. F000:EAC4  EE                    out    dx,al            ; port 0A0h, 8259-2 int command
  16473.                                         ;  al = 20h, end of interrupt
  16474. F000:EAC5  C3                    retn
  16475.                 sub_240        endp
  16476.   
  16477.   
  16478.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16479.                 ;                   SUBROUTINE
  16480.                 ;
  16481.                 ;         Called from:     F000:EA82, EA8A
  16482.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16483.   
  16484.                 sub_241        proc    near
  16485. F000:EAC6  B0 0B                mov    al,0Bh
  16486. F000:EAC8  EE                    out    dx,al            ; port 20h, 8259-1 int command
  16487. F000:EAC9  EB 00                jmp    short loc_1278        ; (EACB)
  16488. F000:EACB            loc_1278:                    ;  xref F000:EAC9
  16489. F000:EACB  EB 00                jmp    short loc_1279        ; (EACD)
  16490. F000:EACD            loc_1279:                    ;  xref F000:EACB
  16491. F000:EACD  EC                    in    al,dx            ; port 20h, 8259-1 int IRR/ISR
  16492. F000:EACE  0A C0                or    al,al            ; Zero ?
  16493. F000:EAD0  C3                    retn
  16494.                 sub_241        endp
  16495.   
  16496. F000:EAD1  55 8B EC 50 53 1E            db    55h, 8Bh, 0ECh, 50h, 53h, 1Eh
  16497. F000:EAD7  C5 5E 02 8A 07 3C            db    0C5h, 5Eh, 2, 8Ah, 7, 3Ch
  16498. F000:EADD  9B 74 39 3C 2E 74            db    9Bh, 74h, 39h, 3Ch, 2Eh, 74h
  16499. F000:EAE3  14 3C 3E 74 10 3C            db    14h, 3Ch, 3Eh, 74h, 10h, 3Ch
  16500. F000:EAE9  36 74 0C 3C 26 74            db    36h, 74h, 0Ch, 3Ch, 26h, 74h
  16501. F000:EAEF  08 3C 64 74 04 3C            db    8, 3Ch, 64h, 74h, 4, 3Ch
  16502. F000:EAF5  65 75 01 43 80 3F            db    65h, 75h, 1, 43h, 80h, 3Fh
  16503. F000:EAFB  D8 72 24 43 8A 07            db    0D8h, 72h, 24h, 43h, 8Ah, 7
  16504. F000:EB01  43 8A E0 25 C0 07            db    43h, 8Ah, 0E0h, 25h, 0C0h, 7
  16505. F000:EB07  3C 00 75 05 80 FC            db    3Ch, 0, 75h, 5, 80h, 0FCh
  16506. F000:EB0D  06                    db    6
  16507. F000:EB0E  75 0A                db    75h, 0Ah
  16508. F000:EB10            loc_1280:
  16509. F000:EB10  3C C0                cmp    al,0C0h
  16510. F000:EB12  74 06                je    short loc_1282        ; Jump if equal
  16511. F000:EB14  43                    inc    bx
  16512. F000:EB15  3C 40                cmp    al,40h            ; '@'
  16513. F000:EB17  74 01                je    short loc_1282        ; Jump if equal
  16514. F000:EB19            loc_1281:                    ;  xref F000:EB36
  16515. F000:EB19  43                    inc    bx
  16516. F000:EB1A            loc_1282:                    ;  xref F000:EB12, EB17
  16517. F000:EB1A  89 5E 02                mov    [bp+2],bx
  16518. F000:EB1D  1F                    pop    ds
  16519. F000:EB1E  5B                    pop    bx
  16520. F000:EB1F  58                    pop    ax
  16521.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 281
  16522.  
  16523. F000:EB20  5D                    pop    bp
  16524. F000:EB21  CF                    iret                ; Interrupt return
  16525. F000:EB22            loc_1283:                    ;  xref F000:EB3B
  16526. F000:EB22  1F                    pop    ds
  16527. F000:EB23  5B                    pop    bx
  16528. F000:EB24  58                    pop    ax
  16529. F000:EB25  5D                    pop    bp
  16530. F000:EB26  E9 FF54                jmp    int_unused        ; (EA7D)
  16531.   
  16532.   
  16533.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 6 ▒▒▒▒▒▒▒
  16534.                 ;
  16535.                 ;   BAD OPCODE DETECTED
  16536.   
  16537. F000:EB29            int_6_badopcode    proc    near
  16538. F000:EB29  55                    push    bp
  16539. F000:EB2A  8B EC                mov    bp,sp
  16540. F000:EB2C  50                    push    ax
  16541. F000:EB2D  53                    push    bx
  16542. F000:EB2E  1E                    push    ds
  16543. F000:EB2F  C5 5E 02                lds    bx,dword ptr [bp+2]    ; Load 32 bit ptr
  16544. F000:EB32  8B 07                mov    ax,[bx]
  16545. F000:EB34  3C F0                cmp    al,0F0h
  16546. F000:EB36  74 E1                je    loc_1281        ; Jump if equal
  16547. F000:EB38  3D 050F                cmp    ax,50Fh
  16548. F000:EB3B  75 E5                jne    loc_1283        ; Jump if not equal
  16549. F000:EB3D  FA                    cli                ; Disable interrupts
  16550. F000:EB3E  FC                    cld                ; Clear direction
  16551. F000:EB3F  33 C0                xor    ax,ax            ; Zero register
  16552. F000:EB41  8E D8                mov    ds,ax
  16553. F000:EB43  8B C4                mov    ax,sp
  16554. F000:EB45  05 000E                add    ax,0Eh
  16555. F000:EB48  24 F8                and    al,0F8h
  16556. F000:EB4A  B9 0020                mov    cx,20h
  16557. F000:EB4D  2B C1                sub    ax,cx
  16558. F000:EB4F  8B E0                mov    sp,ax
  16559. F000:EB51  8B F8                mov    di,ax
  16560. F000:EB53  8B E8                mov    bp,ax
  16561. F000:EB55  8C D0                mov    ax,ss
  16562. F000:EB57  8E C0                mov    es,ax
  16563. F000:EB59  BE E270                mov    si,0E270h
  16564. F000:EB5C  2E: F3/ A4                rep    movs byte ptr es:[di],cs:[si]    ; Rep when cx >0 Mov [si] to es:[di]
  16565. F000:EB5F  8B FD                mov    di,bp
  16566. F000:EB61  8A CC                mov    cl,ah
  16567. F000:EB63  C0 E9 04                shr    cl,4            ; Shift w/zeros fill
  16568. F000:EB66  C1 E0 04                shl    ax,4            ; Shift w/zeros fill
  16569. F000:EB69  03 C7                add    ax,di
  16570. F000:EB6B  80 D1 00                adc    cl,0
  16571. F000:EB6E  83 C7 02                add    di,2
  16572. F000:EB71  AB                    stosw                ; Store ax to es:[di]
  16573. F000:EB72  8A C1                mov    al,cl
  16574. F000:EB74  AA                    stosb                ; Store al to es:[di]
  16575. F000:EB75  32 ED                xor    ch,ch            ; Zero register
  16576. F000:EB77  83 C7 03                add    di,3
  16577. F000:EB7A  BE 0848                mov    si,848h
  16578. F000:EB7D  E8 0084                call    sub_242            ; (EC04)
  16579. F000:EB80  8B D8                mov    bx,ax
  16580.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 282
  16581.  
  16582. F000:EB82  72 03                jc    short loc_1284        ; Jump if carry Set
  16583. F000:EB84  80 CD 01                or    ch,1
  16584. F000:EB87            loc_1284:                    ;  xref F000:EB82
  16585. F000:EB87  83 C7 0C                add    di,0Ch
  16586. F000:EB8A  BE 0836                mov    si,836h
  16587. F000:EB8D  E8 0074                call    sub_242            ; (EC04)
  16588. F000:EB90  72 03                jc    short loc_1285        ; Jump if carry Set
  16589. F000:EB92  80 CD 02                or    ch,2
  16590. F000:EB95            loc_1285:                    ;  xref F000:EB90
  16591. F000:EB95  8E C0                mov    es,ax
  16592. F000:EB97  8E DB                mov    ds,bx
  16593. F000:EB99  66| C1 C8 10                ror    eax,10h            ; Rotate
  16594. F000:EB9D  50                    push    ax
  16595. F000:EB9E  0F 01 56 00                lgdt    qword ptr [bp]        ; Load global des tbl
  16596. F000:EBA2  0F 20 C0                mov    eax,cr0            ; Mov reg-control reg
  16597. F000:EBA5  0C 01                or    al,1
  16598. F000:EBA7  0F 22 C0                mov    cr0,eax            ; Mov reg-control reg
  16599.                 ;* This jump is    a protected mode jump to flush the pre-fetch queue -
  16600.                 ;* - the segment selector was ignored.
  16601. F000:EBAA  EA 0010EBAF                jmp    far ptr loc_1286    ; (EBAF)
  16602. F000:EBAF            loc_1286:                    ;  xref F000:EBAA
  16603. F000:EBAF  D0 ED                shr    ch,1            ; Shift w/zeros fill
  16604. F000:EBB1  73 05                jnc    short loc_1287        ; Jump if carry=0
  16605. F000:EBB3  BB 0008                mov    bx,8
  16606. F000:EBB6  8E DB                mov    ds,bx
  16607. F000:EBB8            loc_1287:                    ;  xref F000:EBB1
  16608. F000:EBB8  D0 ED                shr    ch,1            ; Shift w/zeros fill
  16609. F000:EBBA  73 05                jnc    short loc_1288        ; Jump if carry=0
  16610. F000:EBBC  BB 0018                mov    bx,18h
  16611. F000:EBBF  8E C3                mov    es,bx
  16612. F000:EBC1            loc_1288:                    ;  xref F000:EBBA
  16613. F000:EBC1  24 FE                and    al,0FEh
  16614. F000:EBC3  0F 22 C0                mov    cr0,eax            ; Mov reg-control reg
  16615. F000:EBC6  EA F000EBCB                jmp    far ptr loc_1289    ; (EBCB)
  16616. F000:EBCB            loc_1289:                    ;  xref F000:EBC6
  16617. F000:EBCB  58                    pop    ax
  16618. F000:EBCC  66| C1 C8 10                ror    eax,10h            ; Rotate
  16619. F000:EBD0  33 C0                xor    ax,ax            ; Zero register
  16620. F000:EBD2  8E D0                mov    ss,ax
  16621. F000:EBD4  36: 8B 16 0818            mov    dx,ss:data_18e        ; (0000:0818=4EF0h)
  16622. F000:EBD9  36: 8B 1E 081A            mov    bx,ss:data_19e        ; (0000:081A=7003h)
  16623. F000:EBDE  36: 8B 0E 0822            mov    cx,ss:data_21e        ; (0000:0822=1)
  16624. F000:EBE3  36: 8B 26 082C            mov    sp,ss:data_22e        ; (0000:082C=2212h)
  16625. F000:EBE8  36: 8E 16 0820            mov    ss,ss:data_20e        ; (0000:0820=3)
  16626. F000:EBED  52                    push    dx
  16627. F000:EBEE  51                    push    cx
  16628. F000:EBEF  53                    push    bx
  16629. F000:EBF0  8E D0                mov    ss,ax
  16630. F000:EBF2  BC 0826                mov    sp,826h
  16631. F000:EBF5  61                    popa                ; Restore all regs
  16632. F000:EBF6  36: 8B 26 082C            mov    sp,ss:data_22e        ; (0000:082C=2212h)
  16633. F000:EBFB  36: 8E 16 0820            mov    ss,ss:data_20e        ; (0000:0820=3)
  16634. F000:EC00  83 EC 06                sub    sp,6
  16635. F000:EC03  CF                    iret                ; Interrupt return
  16636.                 int_6_badopcode    endp
  16637.   
  16638.   
  16639.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 283
  16640.  
  16641.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16642.                 ;                   SUBROUTINE
  16643.                 ;
  16644.                 ;         Called from:     F000:EB7D, EB8D
  16645.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16646.   
  16647.                 sub_242        proc    near
  16648. F000:EC04  8B 44 04                mov    ax,[si+4]
  16649. F000:EC07  AB                    stosw                ; Store ax to es:[di]
  16650. F000:EC08  AD                    lodsw                ; String [si] to ax
  16651. F000:EC09  AB                    stosw                ; Store ax to es:[di]
  16652. F000:EC0A  8A 0C                mov    cl,[si]
  16653. F000:EC0C  26: 88 0D                mov    es:[di],cl
  16654. F000:EC0F  A8 0F                test    al,0Fh
  16655. F000:EC11  75 0E                jnz    short loc_ret_1290    ; Jump if not zero
  16656. F000:EC13  F6 C1 F0                test    cl,0F0h
  16657. F000:EC16  75 09                jnz    short loc_ret_1290    ; Jump if not zero
  16658. F000:EC18  C1 E8 04                shr    ax,4            ; Shift w/zeros fill
  16659. F000:EC1B  C0 E1 04                shl    cl,4            ; Shift w/zeros fill
  16660. F000:EC1E  0A E1                or    ah,cl
  16661. F000:EC20  F9                    stc                ; Set carry flag
  16662.   
  16663. F000:EC21            loc_ret_1290:                    ;  xref F000:EC11, EC16
  16664. F000:EC21  C3                    retn
  16665.                 sub_242        endp
  16666.   
  16667.   
  16668.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16669.                 ;                   SUBROUTINE
  16670.                 ;
  16671.                 ;         Called from:     F000:EED5
  16672.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16673.   
  16674.                 sub_243        proc    near
  16675. F000:EC22  B0 20                mov    al,20h            ; ' '
  16676. F000:EC24  E6 A0                out    0A0h,al            ; port 0A0h, 8259-2 int command
  16677.                                         ;  al = 20h, end of interrupt
  16678. F000:EC26  EB 00                jmp    short loc_1291        ; (EC28)
  16679. F000:EC28            loc_1291:                    ;  xref F000:EC26
  16680. F000:EC28  EB 00                jmp    short loc_1292        ; (EC2A)
  16681. F000:EC2A            loc_1292:                    ;  xref F000:EC28
  16682. F000:EC2A  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  16683.                                         ;  al = 20h, end of interrupt
  16684. F000:EC2C  C3                    retn
  16685.                 sub_243        endp
  16686.   
  16687. F000:EC2D  002C[00]                db    44 dup (0)
  16688.   
  16689.   
  16690.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  16691.   
  16692. F000:EC59            int_13h_entry:                    ;  xref F000:FF09
  16693. F000:EC59  E9 C1CA                jmp    int_13h_floppy        ; (AE26)
  16694.   
  16695.   
  16696.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 5 ▒▒▒▒▒▒▒
  16697.                 ;
  16698.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 284
  16699.  
  16700.                 ;   PRINT SCREEN
  16701.                 ;
  16702.                 ;      Send the    present    active display screen contents to the printer if
  16703.                 ;      the printer is idle and not out of paper.  The status of    the print
  16704.                 ;      screen function is in prn_screen_stat at 0050:0000.  Control-Break
  16705.                 ;      will terminate an active print screen operation.
  16706.   
  16707. F000:EC5C            int_5_prn_scrn    proc    near            ;  xref F000:FF54
  16708. F000:EC5C  60                    pusha                ; Save all regs
  16709. F000:EC5D  1E                    push    ds
  16710. F000:EC5E  6A 40                push    40h
  16711. F000:EC60  1F                    pop    ds
  16712. F000:EC61  B0 01                mov    al,1
  16713. F000:EC63  86 06 0100                xchg    al,prn_scrn_stat_b    ; (0040:0100=0)
  16714. F000:EC67  3C 01                cmp    al,1
  16715. F000:EC69  74 65                je    short loc_1299        ; Jump if equal
  16716. F000:EC6B  FB                    sti                ; Enable interrupts
  16717. F000:EC6C  33 D2                xor    dx,dx            ; Zero register
  16718. F000:EC6E  B4 02                mov    ah,2
  16719. F000:EC70  CD 17                int    17h            ; Printer  dx=prn#, ah=func 12h
  16720.                                         ;  read status, ah=return status
  16721. F000:EC72  80 F4 80                xor    ah,80h
  16722. F000:EC75  F6 C4 A9                test    ah,0A9h
  16723. F000:EC78  74 07                jz    short loc_1293        ; Jump if zero
  16724. F000:EC7A  E8 A18A                call    sub_31            ; (8E07)
  16725. F000:EC7D  B1 FF                mov    cl,0FFh
  16726. F000:EC7F  EB 4A                jmp    short loc_1298        ; (ECCB)
  16727. F000:EC81            loc_1293:                    ;  xref F000:EC78
  16728. F000:EC81  E8 004F                call    sub_244            ; (ECD3)
  16729. F000:EC84  B4 0F                mov    ah,0Fh
  16730. F000:EC86  CD 10                int    10h            ; Video display   ah=functn 0Fh
  16731.                                         ;  get state, al=mode, bh=page
  16732. F000:EC88  8A DC                mov    bl,ah
  16733. F000:EC8A  B4 03                mov    ah,3
  16734. F000:EC8C  CD 10                int    10h            ; Video display   ah=functn 03h
  16735.                                         ;  get cursor loc in dx, mode cx
  16736. F000:EC8E  52                    push    dx
  16737. F000:EC8F  2B D2                sub    dx,dx
  16738. F000:EC91            loc_1294:                    ;  xref F000:ECAB, ECBB
  16739. F000:EC91  B4 02                mov    ah,2
  16740. F000:EC93  CD 10                int    10h            ; Video display   ah=functn 02h
  16741.                                         ;  set cursor location in dx
  16742. F000:EC95  B4 08                mov    ah,8
  16743. F000:EC97  CD 10                int    10h            ; Video display   ah=functn 08h
  16744.                                         ;  get char al & attrib ah @curs
  16745. F000:EC99  22 C0                and    al,al
  16746. F000:EC9B  75 02                jnz    short loc_1295        ; Jump if not zero
  16747. F000:EC9D  B0 20                mov    al,20h            ; ' '
  16748. F000:EC9F            loc_1295:                    ;  xref F000:EC9B
  16749. F000:EC9F  E8 003C                call    sub_245            ; (ECDE)
  16750. F000:ECA2  F6 C4 29                test    ah,29h            ; ')'
  16751. F000:ECA5  75 1A                jnz    short loc_1296        ; Jump if not zero
  16752. F000:ECA7  FE C2                inc    dl
  16753. F000:ECA9  3A D3                cmp    dl,bl
  16754. F000:ECAB  75 E4                jne    loc_1294        ; Jump if not equal
  16755. F000:ECAD  2A D2                sub    dl,dl
  16756. F000:ECAF  E8 0021                call    sub_244            ; (ECD3)
  16757.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 285
  16758.  
  16759. F000:ECB2  FE C6                inc    dh
  16760. F000:ECB4  A0 0084                mov    al,video_rows        ; (0040:0084=18h)
  16761. F000:ECB7  FE C0                inc    al
  16762. F000:ECB9  3A F0                cmp    dh,al
  16763. F000:ECBB  75 D4                jne    loc_1294        ; Jump if not equal
  16764. F000:ECBD  B1 00                mov    cl,0
  16765. F000:ECBF  EB 05                jmp    short loc_1297        ; (ECC6)
  16766. F000:ECC1            loc_1296:                    ;  xref F000:ECA5
  16767. F000:ECC1  E8 A143                call    sub_31            ; (8E07)
  16768. F000:ECC4  B1 FF                mov    cl,0FFh
  16769. F000:ECC6            loc_1297:                    ;  xref F000:ECBF
  16770. F000:ECC6  5A                    pop    dx
  16771. F000:ECC7  B4 02                mov    ah,2
  16772. F000:ECC9  CD 10                int    10h            ; Video display   ah=functn 02h
  16773.                                         ;  set cursor location in dx
  16774. F000:ECCB            loc_1298:                    ;  xref F000:EC7F
  16775. F000:ECCB  FA                    cli                ; Disable interrupts
  16776. F000:ECCC  88 0E 0100                mov    prn_scrn_stat_b,cl    ; (0040:0100=0)
  16777. F000:ECD0            loc_1299:                    ;  xref F000:EC69
  16778. F000:ECD0  1F                    pop    ds
  16779. F000:ECD1  61                    popa                ; Restore all regs
  16780. F000:ECD2  CF                    iret                ; Interrupt return
  16781.                 int_5_prn_scrn    endp
  16782.   
  16783.   
  16784.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16785.                 ;                   SUBROUTINE
  16786.                 ;
  16787.                 ;         Called from:     F000:EC81, ECAF
  16788.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16789.   
  16790.                 sub_244        proc    near
  16791. F000:ECD3  B0 0D                mov    al,0Dh
  16792. F000:ECD5  E8 0006                call    sub_245            ; (ECDE)
  16793. F000:ECD8  B0 0A                mov    al,0Ah
  16794. F000:ECDA  E8 0001                call    sub_245            ; (ECDE)
  16795. F000:ECDD  C3                    retn
  16796.                 sub_244        endp
  16797.   
  16798.   
  16799.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  16800.                 ;                   SUBROUTINE
  16801.                 ;
  16802.                 ;         Called from:     F000:EC9F, ECD5, ECDA
  16803.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16804.   
  16805.                 sub_245        proc    near
  16806. F000:ECDE  52                    push    dx
  16807. F000:ECDF  33 D2                xor    dx,dx            ; Zero register
  16808. F000:ECE1  32 E4                xor    ah,ah            ; Zero register
  16809. F000:ECE3  CD 17                int    17h            ; Printer  dx=prn#, ah=func 10h
  16810.                                         ;  print char in al
  16811. F000:ECE5  5A                    pop    dx
  16812. F000:ECE6  C3                    retn
  16813.                 sub_245        endp
  16814.   
  16815.   
  16816.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 286
  16817.  
  16818.   
  16819.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 8 ▒▒▒▒▒▒▒
  16820.                 ;
  16821.                 ;   TIMER TICKS     (called by hardware 8259-1, IRQ 0)
  16822.                 ;
  16823.                 ;      This is the primary timer used to control the clock and other key
  16824.                 ;      system resources.  It is called indirectly by channel A of the 8253
  16825.                 ;      timer every 18.2    milliseconds.  Every timer tick also calls int 1Ch
  16826.                 ;      for user    needs (int 1Ch points to an iret instruction unless changed
  16827.                 ;      by a resident program).  The timer interrupt is given the highest
  16828.                 ;      maskable    interrupt priority upon power up.
  16829.                 ;
  16830.                 ;      The main    timing functions of int 8 include increment of a 32-bit
  16831.                 ;      time since powered on counter, timer_hi and timer_low, and after 24
  16832.                 ;      hours since powered on, timer_rolled is incremented.
  16833.                 ;
  16834.                 ;      The last    task of    int 8 is turning off the floppy drive motor after
  16835.                 ;      2 seconds of non-use.  The counter dsk_motor_tmr is decremented upon
  16836.                 ;      each occurrence of int 8.  When the count reaches zero, the motor is
  16837.                 ;      set off,    and the    motor running flags are cleared in dsk_motor_stat.
  16838.   
  16839. F000:ECE7            int_8_timer    proc    near            ;  xref F000:FEA5
  16840. F000:ECE7  FB                    sti                ; Enable interrupts
  16841. F000:ECE8  1E                    push    ds
  16842. F000:ECE9  6A 40                push    40h
  16843. F000:ECEB  1F                    pop    ds
  16844. F000:ECEC  56                    push    si
  16845. F000:ECED  57                    push    di
  16846. F000:ECEE  BE 006C                mov    si,6Ch
  16847. F000:ECF1  BF 006E                mov    di,6Eh
  16848. F000:ECF4  FF 04                inc    word ptr [si]
  16849. F000:ECF6  75 02                jnz    short loc_1300        ; Jump if not zero
  16850. F000:ECF8  FF 05                inc    word ptr [di]
  16851. F000:ECFA            loc_1300:                    ;  xref F000:ECF6
  16852. F000:ECFA  83 3D 18                cmp    word ptr [di],18h
  16853. F000:ECFD  75 12                jne    short loc_1301        ; Jump if not equal
  16854. F000:ECFF  81 3C 00B0                cmp    word ptr [si],0B0h
  16855. F000:ED03  75 0C                jne    short loc_1301        ; Jump if not equal
  16856. F000:ED05  C7 04 0000                mov    word ptr [si],0
  16857. F000:ED09  C7 05 0000                mov    word ptr [di],0
  16858. F000:ED0D  C6 45 02 01                mov    byte ptr [di+2],1
  16859. F000:ED11            loc_1301:                    ;  xref F000:ECFD, ED03
  16860. F000:ED11  5F                    pop    di
  16861. F000:ED12  5E                    pop    si
  16862. F000:ED13  50                    push    ax
  16863. F000:ED14  52                    push    dx
  16864. F000:ED15  FE 0E 0040                dec    dsk_motor_tmr        ; (0040:0040=17h)
  16865. F000:ED19  75 0B                jnz    short loc_1302        ; Jump if not zero
  16866. F000:ED1B  BA 03F2                mov    dx,3F2h
  16867. F000:ED1E  B0 0C                mov    al,0Ch
  16868. F000:ED20  80 26 003F F0            and    dsk_motor_stat,0F0h    ; (0040:003F=0)
  16869. F000:ED25  EE                    out    dx,al            ; port 3F2h, dsk0 contrl output
  16870. F000:ED26            loc_1302:                    ;  xref F000:ED19
  16871. F000:ED26  CD 1C                int    1Ch            ; Timer break (call each 18.2ms)
  16872. F000:ED28  FA                    cli                ; Disable interrupts
  16873. F000:ED29  B0 20                mov    al,20h            ; ' '
  16874. F000:ED2B  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  16875.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 287
  16876.  
  16877.                                         ;  al = 20h, end of interrupt
  16878. F000:ED2D  5A                    pop    dx
  16879. F000:ED2E  58                    pop    ax
  16880. F000:ED2F  1F                    pop    ds
  16881. F000:ED30  CF                    iret                ; Interrupt return
  16882.                 int_8_timer    endp
  16883.   
  16884.   
  16885.   
  16886.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 1Ah ▒▒▒▒▒
  16887.                 ;
  16888.                 ;   REAL-TIME CLOCK SERVICES
  16889.                 ;
  16890.                 ;      Call with:   ah = sub-function number
  16891.                 ;
  16892.                 ;      Functions:
  16893.                 ;        ah = 0        Get    system timer (increments every 54.92 ms    from int 8)
  16894.                 ;              Returns:    al = # of 24 hour periods since read/powered up
  16895.                 ;                      cx:dx = 32 bit count
  16896.                 ;        ah = 1        Get    system timer & reset 24 hour counter
  16897.                 ;              Returns:    cx:dx = 32 bit count
  16898.                 ;
  16899.                 ;              **** System must have CMOS clock for services 2-0Bh ****
  16900.                 ;        ah = 2        Get    time in BCD format
  16901.                 ;              Returns:    ch/cl = hours/minutes
  16902.                 ;                      dh = seconds
  16903.                 ;                      dl = 0/1 if daylight savings time operation off/on
  16904.                 ;                      carry flag = 0 if clock ok, 1    if stopped
  16905.                 ;        ah = 3        Set    time in BCD format
  16906.                 ;              Call with:  ch/cl = hours/minutes
  16907.                 ;                      dh = seconds
  16908.                 ;                      dl = 0/1 if daylight savings time operation off/on
  16909.                 ;        ah = 4        Get    date in BCD format
  16910.                 ;              Returns:    cx = four digit year
  16911.                 ;                      dh/dl = month/day
  16912.                 ;                      carry flag = 0 if clock ok, 1    if stopped
  16913.                 ;        ah = 5        Set    date in BCD format
  16914.                 ;              Call with:  cx = four digit year
  16915.                 ;                      dh/dl = month/day
  16916.                 ;        ah = 6        Set    24 hour alarm (alarm vectors to int 4Ah)
  16917.                 ;              Call with:  ch/cl = hours/minutes
  16918.                 ;                      dh = seconds
  16919.                 ;        ah = 7        Clear alarm
  16920.                 ;        ah = 9        Get    alarm time & status
  16921.                 ;              Returns:    ch/cl = hours/minutes
  16922.                 ;                      dh = seconds
  16923.                 ;                      dl = 0/1 alarm off/on
  16924.                 ;        ah = 0Ah   Get    days counter
  16925.                 ;              Returns:    cx = number of days since 1-Jan-80
  16926.                 ;        ah = 0Bh   Set    days counter
  16927.                 ;              Call with:  cx = number of days since 1-Jan-80
  16928.   
  16929. F000:ED31            int_1Ah_RTC    proc    near            ;  xref F000:FE6E
  16930. F000:ED31  FB                    sti                ; Enable interrupts
  16931. F000:ED32  80 FC 08                cmp    ah,8
  16932. F000:ED35  73 2B                jae    short loc_1307        ; Jump if above or =
  16933. F000:ED37  80 FC 01                cmp    ah,1
  16934.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 288
  16935.  
  16936. F000:ED3A  77 2B                ja    short loc_1308        ; Jump if above
  16937. F000:ED3C  1E                    push    ds
  16938. F000:ED3D  6A 40                push    40h
  16939. F000:ED3F  1F                    pop    ds
  16940. F000:ED40  B0 00                mov    al,0
  16941. F000:ED42  FA                    cli                ; Disable interrupts
  16942. F000:ED43  74 0E                jz    short loc_1303        ; Jump if zero
  16943. F000:ED45  86 06 0070                xchg    al,timer_rolled        ; (0040:0070=0)
  16944. F000:ED49  8B 16 006C                mov    dx,timer_low        ; (0040:006C=0C491h)
  16945. F000:ED4D  8B 0E 006E                mov    cx,timer_hi        ; (0040:006E=0Fh)
  16946. F000:ED51  EB 0B                jmp    short loc_1304        ; (ED5E)
  16947. F000:ED53            loc_1303:                    ;  xref F000:ED43
  16948. F000:ED53  A2 0070                mov    timer_rolled,al        ; (0040:0070=0)
  16949. F000:ED56  89 16 006C                mov    timer_low,dx        ; (0040:006C=0C492h)
  16950. F000:ED5A  89 0E 006E                mov    timer_hi,cx        ; (0040:006E=0Fh)
  16951. F000:ED5E            loc_1304:                    ;  xref F000:ED51
  16952. F000:ED5E  1F                    pop    ds
  16953. F000:ED5F            loc_1305:                    ;  xref F000:EDD1, EDE5, EE0B
  16954. F000:ED5F  F9                    stc                ; Set carry flag
  16955. F000:ED60            loc_1306:                    ;  xref F000:EE17
  16956. F000:ED60  B4 00                mov    ah,0
  16957. F000:ED62            loc_1307:                    ;  xref F000:ED35
  16958. F000:ED62  FB                    sti                ; Enable interrupts
  16959. F000:ED63  F5                    cmc                ; Complement carry
  16960. F000:ED64  CA 0002                retf    2            ; Return far
  16961.                 int_1Ah_RTC    endp
  16962.   
  16963. F000:ED67            loc_1308:                    ;  xref F000:ED3A
  16964. F000:ED67  8A C4                mov    al,ah
  16965. F000:ED69  98                    cbw                ; Convrt byte to word
  16966. F000:ED6A  48                    dec    ax
  16967. F000:ED6B  48                    dec    ax
  16968. F000:ED6C  74 51                jz    short loc_1311        ; Jump if zero
  16969. F000:ED6E  48                    dec    ax
  16970. F000:ED6F  74 33                jz    short loc_1310        ; Jump if zero
  16971. F000:ED71  48                    dec    ax
  16972. F000:ED72  74 5F                jz    short loc_1312        ; Jump if zero
  16973. F000:ED74  48                    dec    ax
  16974. F000:ED75  74 0C                jz    short loc_1309        ; Jump if zero
  16975. F000:ED77  48                    dec    ax
  16976. F000:ED78  74 6E                jz    short loc_1313        ; Jump if zero
  16977. F000:ED7A  FA                    cli                ; Disable interrupts
  16978. F000:ED7B  E8 00F7                call    sub_252            ; (EE75)
  16979. F000:ED7E  24 57                and    al,57h            ; 'W'
  16980. F000:ED80  E9 0085                jmp    loc_1314        ; (EE08)
  16981. F000:ED83            loc_1309:                    ;  xref F000:ED75
  16982. F000:ED83  E8 0094                call    sub_247            ; (EE1A)
  16983. F000:ED86  52                    push    dx
  16984. F000:ED87  B8 3209                mov    ax,3209h
  16985. F000:ED8A  B2 08                mov    dl,8
  16986. F000:ED8C  E8 00C9                call    sub_250            ; (EE58)
  16987. F000:ED8F  5A                    pop    dx
  16988. F000:ED90  8A E2                mov    ah,dl
  16989. F000:ED92  B0 07                mov    al,7
  16990. F000:ED94  E8 0117                call    sub_258            ; (EEAE)
  16991. F000:ED97  B8 0006                mov    ax,6
  16992. F000:ED9A  E8 0111                call    sub_258            ; (EEAE)
  16993.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 289
  16994.  
  16995. F000:ED9D  E8 00D5                call    sub_252            ; (EE75)
  16996. F000:EDA0  24 7F                and    al,7Fh
  16997. F000:EDA2  EB 64                jmp    short loc_1314        ; (EE08)
  16998. F000:EDA4            loc_1310:                    ;  xref F000:ED6F
  16999. F000:EDA4  E8 0073                call    sub_247            ; (EE1A)
  17000. F000:EDA7  52                    push    dx
  17001. F000:EDA8  B8 0402                mov    ax,402h
  17002. F000:EDAB  B2 00                mov    dl,0
  17003. F000:EDAD  E8 00A8                call    sub_250            ; (EE58)
  17004. F000:EDB0  5A                    pop    dx
  17005. F000:EDB1  E8 00C1                call    sub_252            ; (EE75)
  17006. F000:EDB4  24 60                and    al,60h            ; '`'
  17007. F000:EDB6  0C 02                or    al,2
  17008. F000:EDB8  80 E2 01                and    dl,1
  17009. F000:EDBB  0A C2                or    al,dl
  17010. F000:EDBD  EB 49                jmp    short loc_1314        ; (EE08)
  17011. F000:EDBF            loc_1311:                    ;  xref F000:ED6C
  17012. F000:EDBF  E8 004C                call    sub_246            ; (EE0E)
  17013. F000:EDC2  B0 02                mov    al,2
  17014. F000:EDC4  B9 0004                mov    cx,4
  17015. F000:EDC7  E8 007D                call    sub_249            ; (EE47)
  17016. F000:EDCA  E8 00A8                call    sub_252            ; (EE75)
  17017. F000:EDCD  24 01                and    al,1
  17018. F000:EDCF  8A D0                mov    dl,al
  17019. F000:EDD1  EB 8C                jmp    short loc_1305        ; (ED5F)
  17020. F000:EDD3            loc_1312:                    ;  xref F000:ED72
  17021. F000:EDD3  E8 0038                call    sub_246            ; (EE0E)
  17022. F000:EDD6  B0 09                mov    al,9
  17023. F000:EDD8  B9 0832                mov    cx,832h
  17024. F000:EDDB  E8 0069                call    sub_249            ; (EE47)
  17025. F000:EDDE  B0 07                mov    al,7
  17026. F000:EDE0  E8 00BC                call    sub_257            ; (EE9F)
  17027. F000:EDE3  8A D0                mov    dl,al
  17028. F000:EDE5  E9 FF77                jmp    loc_1305        ; (ED5F)
  17029. F000:EDE8            loc_1313:                    ;  xref F000:ED78
  17030. F000:EDE8  FA                    cli                ; Disable interrupts
  17031. F000:EDE9  E8 0089                call    sub_252            ; (EE75)
  17032. F000:EDEC  FB                    sti                ; Enable interrupts
  17033. F000:EDED  A8 20                test    al,20h            ; ' '
  17034. F000:EDEF  75 24                jnz    short loc_1316        ; Jump if not zero
  17035. F000:EDF1  E8 0026                call    sub_247            ; (EE1A)
  17036. F000:EDF4  52                    push    dx
  17037. F000:EDF5  B8 0503                mov    ax,503h
  17038. F000:EDF8  B2 01                mov    dl,1
  17039. F000:EDFA  E8 005B                call    sub_250            ; (EE58)
  17040. F000:EDFD  5A                    pop    dx
  17041. F000:EDFE  E8 0069                call    sub_251            ; (EE6A)
  17042. F000:EE01  E8 0071                call    sub_252            ; (EE75)
  17043. F000:EE04  24 7F                and    al,7Fh
  17044. F000:EE06  0C 20                or    al,20h            ; ' '
  17045. F000:EE08            loc_1314:                    ;  xref F000:ED80, EDA2, EDBD
  17046. F000:EE08  E8 0076                call    sub_254            ; (EE81)
  17047. F000:EE0B  E9 FF51                jmp    loc_1305        ; (ED5F)
  17048.   
  17049.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17050.                 ;                   SUBROUTINE
  17051.                 ;
  17052.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 290
  17053.  
  17054.                 ;         Called from:     F000:EDBF, EDD3
  17055.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17056.   
  17057.                 sub_246        proc    near
  17058. F000:EE0E  E8 0027                call    sub_248            ; (EE38)
  17059. F000:EE11  75 01                jnz    short loc_1315        ; Jump if not zero
  17060. F000:EE13  C3                    retn
  17061. F000:EE14            loc_1315:                    ;  xref F000:EE11
  17062. F000:EE14  58                    pop    ax
  17063. F000:EE15            loc_1316:                    ;  xref F000:EDEF
  17064. F000:EE15  33 C0                xor    ax,ax            ; Zero register
  17065. F000:EE17  E9 FF46                jmp    loc_1306        ; (ED60)
  17066.                 sub_246        endp
  17067.   
  17068.   
  17069.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17070.                 ;                   SUBROUTINE
  17071.                 ;
  17072.                 ;         Called from:     F000:ED83, EDA4, EDF1
  17073.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17074.   
  17075.                 sub_247        proc    near
  17076. F000:EE1A  51                    push    cx
  17077. F000:EE1B  E8 001A                call    sub_248            ; (EE38)
  17078. F000:EE1E  59                    pop    cx
  17079. F000:EE1F  74 16                jz    short loc_ret_1317    ; Jump if zero
  17080. F000:EE21  B8 260A                mov    ax,260Ah
  17081. F000:EE24  90                    nop                ;
  17082. F000:EE25  E8 0086                call    sub_258            ; (EEAE)
  17083. F000:EE28  B8 820B                mov    ax,820Bh
  17084. F000:EE2B  E8 0080                call    sub_258            ; (EEAE)
  17085. F000:EE2E  E8 004A                call    sub_253            ; (EE7B)
  17086. F000:EE31  B0 0D                mov    al,0Dh
  17087. F000:EE33  E8 0069                call    sub_257            ; (EE9F)
  17088. F000:EE36  90                    nop                ;
  17089.   
  17090. F000:EE37            loc_ret_1317:                    ;  xref F000:EE1F
  17091. F000:EE37  C3                    retn
  17092.                 sub_247        endp
  17093.   
  17094.   
  17095.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17096.                 ;                   SUBROUTINE
  17097.                 ;
  17098.                 ;         Called from:     F000:EE0E, EE1B
  17099.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17100.   
  17101.                 sub_248        proc    near
  17102. F000:EE38  B9 1000                mov    cx,1000h
  17103.   
  17104. F000:EE3B            locloop_1318:                    ;  xref F000:EE44
  17105. F000:EE3B  FB                    sti                ; Enable interrupts
  17106. F000:EE3C  B0 0A                mov    al,0Ah
  17107. F000:EE3E  FA                    cli                ; Disable interrupts
  17108. F000:EE3F  E8 005D                call    sub_257            ; (EE9F)
  17109. F000:EE42  A8 80                test    al,80h
  17110. F000:EE44  E0 F5                loopnz    locloop_1318        ; Loop if zf=0, cx>0
  17111.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 291
  17112.  
  17113.   
  17114. F000:EE46  C3                    retn
  17115.                 sub_248        endp
  17116.   
  17117.   
  17118.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17119.                 ;                   SUBROUTINE
  17120.                 ;
  17121.                 ;         Called from:     F000:EDC7, EDDB
  17122.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17123.   
  17124.                 sub_249        proc    near
  17125. F000:EE47  FA                    cli                ; Disable interrupts
  17126. F000:EE48  E8 0054                call    sub_257            ; (EE9F)
  17127. F000:EE4B  86 C1                xchg    al,cl
  17128. F000:EE4D  E8 004F                call    sub_257            ; (EE9F)
  17129. F000:EE50  86 C5                xchg    al,ch
  17130. F000:EE52  E8 004A                call    sub_257            ; (EE9F)
  17131. F000:EE55  86 C6                xchg    al,dh
  17132. F000:EE57  C3                    retn
  17133.                 sub_249        endp
  17134.   
  17135.   
  17136.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17137.                 ;                   SUBROUTINE
  17138.                 ;
  17139.                 ;         Called from:     F000:ED8C, EDAD, EDFA
  17140.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17141.   
  17142.                 sub_250        proc    near
  17143. F000:EE58  51                    push    cx
  17144. F000:EE59  86 E1                xchg    ah,cl
  17145. F000:EE5B  FA                    cli                ; Disable interrupts
  17146. F000:EE5C  E8 004F                call    sub_258            ; (EEAE)
  17147. F000:EE5F  91                    xchg    ax,cx
  17148. F000:EE60  E8 004B                call    sub_258            ; (EEAE)
  17149. F000:EE63  92                    xchg    ax,dx
  17150. F000:EE64  E8 0047                call    sub_258            ; (EEAE)
  17151. F000:EE67  90                    nop                ;
  17152. F000:EE68  59                    pop    cx
  17153. F000:EE69  C3                    retn
  17154.                 sub_250        endp
  17155.   
  17156.   
  17157.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17158.                 ;                   SUBROUTINE
  17159.                 ;
  17160.                 ;         Called from:     F000:CBF7, EDFE
  17161.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17162.   
  17163.                 sub_251        proc    near
  17164. F000:EE6A  E4 A1                in    al,0A1h            ; port 0A1h, 8259-2 int IMR
  17165. F000:EE6C  24 FE                and    al,0FEh
  17166. F000:EE6E  EB 00                jmp    short loc_1319        ; (EE70)
  17167. F000:EE70            loc_1319:                    ;  xref F000:EE6E
  17168. F000:EE70  EB 00                jmp    short loc_1320        ; (EE72)
  17169. F000:EE72            loc_1320:                    ;  xref F000:EE70
  17170.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 292
  17171.  
  17172. F000:EE72  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  17173. F000:EE74  C3                    retn
  17174.                 sub_251        endp
  17175.   
  17176.   
  17177.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17178.                 ;                   SUBROUTINE
  17179.                 ;
  17180.                 ;         Called from:     F000:CC0F, EA34, EA4E, ED7B, ED9D, EDB1, EDCA
  17181.                 ;                  EDE9, EE01
  17182.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17183.   
  17184.                 sub_252        proc    near
  17185. F000:EE75  B0 0B                mov    al,0Bh
  17186. F000:EE77  E8 0025                call    sub_257            ; (EE9F)
  17187. F000:EE7A  C3                    retn
  17188.                 sub_252        endp
  17189.   
  17190.   
  17191.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17192.                 ;                   SUBROUTINE
  17193.                 ;
  17194.                 ;         Called from:     F000:EA2B, EE2E
  17195.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17196.   
  17197.                 sub_253        proc    near
  17198. F000:EE7B  B0 0C                mov    al,0Ch
  17199. F000:EE7D  E8 001F                call    sub_257            ; (EE9F)
  17200. F000:EE80  C3                    retn
  17201.                 sub_253        endp
  17202.   
  17203.   
  17204.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17205.                 ;                   SUBROUTINE
  17206.                 ;
  17207.                 ;         Called from:     F000:CC16, EA53, EE08
  17208.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17209.   
  17210.                 sub_254        proc    near
  17211. F000:EE81  B4 0B                mov    ah,0Bh
  17212. F000:EE83  86 C4                xchg    al,ah
  17213. F000:EE85  E8 0026                call    sub_258            ; (EEAE)
  17214. F000:EE88  C3                    retn
  17215.                 sub_254        endp
  17216.   
  17217.   
  17218.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17219.                 ;                   SUBROUTINE
  17220.                 ;
  17221.                 ;         Called from:     F000:8F07, CDB2, CE2A, CE36, EEA8, EEC1
  17222.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17223.   
  17224.                 sub_255        proc    near
  17225. F000:EE89            loc_1321:                    ;  xref F000:832D, F649
  17226. F000:EE89  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  17227. F000:EE8B  EB 00                jmp    short loc_1322        ; (EE8D)
  17228. F000:EE8D            loc_1322:                    ;  xref F000:EE8B
  17229.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 293
  17230.  
  17231. F000:EE8D  EB 00                jmp    short loc_1323        ; (EE8F)
  17232. F000:EE8F            loc_1323:                    ;  xref F000:EE8D
  17233. F000:EE8F  E4 71                in    al,71h            ; port 71h, RTC clock/RAM data
  17234. F000:EE91  C3                    retn
  17235.                 sub_255        endp
  17236.   
  17237.   
  17238.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17239.                 ;                   SUBROUTINE
  17240.                 ;
  17241.                 ;         Called from:     F000:A9F3, AA47, AB46, AB4D, AB59, AD01, AD61
  17242.                 ;                  CAC9, CB54, EEB8
  17243.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17244.   
  17245.                 sub_256        proc    near
  17246. F000:EE92            loc_1324:                    ;  xref F000:F3DB
  17247. F000:EE92  E6 70                out    70h,al            ; port 70h, RTC addr/enabl NMI
  17248.                                         ;  al = 8Fh, NMI off/pwr status
  17249. F000:EE94  86 C4                xchg    al,ah
  17250. F000:EE96  EB 00                jmp    short loc_1325        ; (EE98)
  17251. F000:EE98            loc_1325:                    ;  xref F000:EE96
  17252. F000:EE98  EB 00                jmp    short loc_1326        ; (EE9A)
  17253. F000:EE9A            loc_1326:                    ;  xref F000:EE98
  17254. F000:EE9A  E6 71                out    71h,al            ; port 71h, RTC clock/RAM data
  17255. F000:EE9C  86 C4                xchg    al,ah
  17256. F000:EE9E  C3                    retn
  17257.                 sub_256        endp
  17258.   
  17259.   
  17260.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17261.                 ;                   SUBROUTINE
  17262.                 ;
  17263.                 ;         Called from:     F000:8FF7, 91BD, 91CB, 925B, 927A, 92B0, 92BC
  17264.                 ;                  9337, 933F, 9463, 9484, 948D, 94B6, 94DA
  17265.                 ;                  94DF, 9543, 954C, 955B, 9560, 95E3, 9638
  17266.                 ;                  9834, 9839, 9894, 98FA, A8D7, A8E8, A925
  17267.                 ;                  A954, A995, B1D9, B1E2, B297, B4F1, B4FA
  17268.                 ;                  BD00, BD0D, BDB9, BDBE, C056, E8FA, EDE0
  17269.                 ;                  EE33, EE3F, EE48, EE4D, EE52, EE77, EE7D
  17270.                 ;                  F086, F08F
  17271.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17272.   
  17273.                 sub_257        proc    near
  17274. F000:EE9F  9C                    pushf                ; Push flags
  17275. F000:EEA0  FA                    cli                ; Disable interrupts
  17276. F000:EEA1  22 C0                and    al,al
  17277. F000:EEA3  78 03                js    short loc_1327        ; Jump if sign=1
  17278. F000:EEA5  0C 80                or    al,80h
  17279. F000:EEA7  F9                    stc                ; Set carry flag
  17280. F000:EEA8            loc_1327:                    ;  xref F000:EEA3
  17281. F000:EEA8  E8 FFDE                call    sub_255            ; (EE89)
  17282. F000:EEAB  50                    push    ax
  17283. F000:EEAC  EB 0D                jmp    short loc_1329        ; (EEBB)
  17284.   
  17285.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17286.                 ;
  17287.                 ;         Called from:     F000:91D2, 929C, 94F7, 9569, 9571, 963F, 97AD
  17288.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 294
  17289.  
  17290.                 ;                  A95B, A99C, BDAE, BDB4, C045, C067, C06E
  17291.                 ;                  C074, C07A, E903, ED94, ED9A, EE25, EE2B
  17292.                 ;                  EE5C, EE60, EE64, EE85
  17293.   
  17294.                 sub_258:
  17295. F000:EEAE  9C                    pushf                ; Push flags
  17296. F000:EEAF  FA                    cli                ; Disable interrupts
  17297. F000:EEB0  50                    push    ax
  17298. F000:EEB1  22 C0                and    al,al
  17299. F000:EEB3  78 03                js    short loc_1328        ; Jump if sign=1
  17300. F000:EEB5  0C 80                or    al,80h
  17301. F000:EEB7  F9                    stc                ; Set carry flag
  17302. F000:EEB8            loc_1328:                    ;  xref F000:EEB3
  17303. F000:EEB8  E8 FFD7                call    sub_256            ; (EE92)
  17304. F000:EEBB            loc_1329:                    ;  xref F000:EEAC
  17305. F000:EEBB  B0 0D                mov    al,0Dh
  17306. F000:EEBD  72 02                jc    short loc_1330        ; Jump if carry Set
  17307. F000:EEBF  0C 80                or    al,80h
  17308. F000:EEC1            loc_1330:                    ;  xref F000:EEBD
  17309. F000:EEC1  E8 FFC5                call    sub_255            ; (EE89)
  17310. F000:EEC4  58                    pop    ax
  17311. F000:EEC5  9D                    popf                ; Pop flags
  17312. F000:EEC6  C3                    retn
  17313.                 sub_257        endp
  17314.   
  17315.   
  17316.   
  17317.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 71h ▒▒▒▒▒
  17318.                 ;
  17319.                 ;   LAN ADAPTER    1  (called by hardware 8259-2, IRQ 9)
  17320.                 ;
  17321.                 ;      Calls interrupt 0Ah.
  17322.   
  17323. F000:EEC7            int_71h_LAN    proc    near            ;  xref F000:FF25
  17324. F000:EEC7  50                    push    ax
  17325. F000:EEC8  B0 20                mov    al,20h            ; ' '
  17326. F000:EECA  E6 A0                out    0A0h,al            ; port 0A0h, 8259-2 int command
  17327.                                         ;  al = 20h, end of interrupt
  17328. F000:EECC  58                    pop    ax
  17329. F000:EECD  CD 0A                int    0Ah            ; Find int from 2nd controller
  17330. F000:EECF  CF                    iret                ; Interrupt return
  17331.                 int_71h_LAN    endp
  17332.   
  17333.   
  17334.   
  17335.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 75h ▒▒▒▒▒
  17336.                 ;
  17337.                 ;   MATH CO-PROCESSOR (called by hardware 8259-2 IRQ 13)
  17338.                 ;
  17339.                 ;      The math    co-processor 80287 invokes this interrupt.  Int    75h calls
  17340.                 ;      the non-maskable    interrupt int 2 to halt the system (80287 is not
  17341.                 ;      used if this vector is left pointing here).  Programs which use
  17342.                 ;      the 80287 must re-vector this interrupt to use the 80287.
  17343.   
  17344. F000:EED0            int_75h_80287    proc    near            ;  xref F000:FF2D
  17345. F000:EED0  50                    push    ax
  17346. F000:EED1  32 C0                xor    al,al            ; Zero register
  17347.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 295
  17348.  
  17349. F000:EED3  E6 F0                out    0F0h,al            ; port 0F0h, 80287 clear busy
  17350. F000:EED5  E8 FD4A                call    sub_243            ; (EC22)
  17351. F000:EED8  58                    pop    ax
  17352. F000:EED9  CD 02                int    2            ; NMI (parity, etc.)
  17353. F000:EEDB  CF                    iret                ; Interrupt return
  17354.                 int_75h_80287    endp
  17355.   
  17356.   
  17357.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17358.                 ;                   SUBROUTINE
  17359.                 ;
  17360.                 ;         Called from:     F000:CD1C
  17361.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17362.   
  17363.                 sub_259        proc    near
  17364. F000:EEDC            loc_1331:                    ;  xref F000:80B5
  17365. F000:EEDC  B0 00                mov    al,0
  17366. F000:EEDE  E6 F1                out    0F1h,al            ; port 0F1h, 80287 reset
  17367. F000:EEE0            loc_1332:                    ;  xref F000:83BB
  17368. F000:EEE0  B0 11                mov    al,11h
  17369. F000:EEE2  E6 A0                out    0A0h,al            ; port 0A0h, 8259-2 int command
  17370.                                         ;  al = 11h, initialize, 4 byte
  17371. F000:EEE4  EB 00                jmp    short loc_1333        ; (EEE6)
  17372. F000:EEE6            loc_1333:                    ;  xref F000:EEE4
  17373. F000:EEE6  EB 00                jmp    short loc_1334        ; (EEE8)
  17374. F000:EEE8            loc_1334:                    ;  xref F000:EEE6
  17375. F000:EEE8  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  17376. F000:EEEA  EB 00                jmp    short loc_1335        ; (EEEC)
  17377. F000:EEEC            loc_1335:                    ;  xref F000:EEEA
  17378. F000:EEEC  EB 00                jmp    short loc_1336        ; (EEEE)
  17379. F000:EEEE            loc_1336:                    ;  xref F000:EEEC
  17380. F000:EEEE  8A C3                mov    al,bl
  17381. F000:EEF0  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  17382.                                         ;  al = 70h, inhibit IRQ12-14
  17383. F000:EEF2  EB 00                jmp    short loc_1337        ; (EEF4)
  17384. F000:EEF4            loc_1337:                    ;  xref F000:EEF2
  17385. F000:EEF4  EB 00                jmp    short loc_1338        ; (EEF6)
  17386. F000:EEF6            loc_1338:                    ;  xref F000:EEF4
  17387. F000:EEF6  8A C7                mov    al,bh
  17388. F000:EEF8  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  17389.                                         ;  al = 8, inhibit IRQ3 rs232
  17390. F000:EEFA  EB 00                jmp    short loc_1339        ; (EEFC)
  17391. F000:EEFC            loc_1339:                    ;  xref F000:EEFA
  17392. F000:EEFC  EB 00                jmp    short loc_1340        ; (EEFE)
  17393. F000:EEFE            loc_1340:                    ;  xref F000:EEFC
  17394. F000:EEFE  B0 02                mov    al,2
  17395. F000:EF00  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  17396.                                         ;  al = 2, inhibit IRQ9
  17397. F000:EF02  EB 00                jmp    short loc_1341        ; (EF04)
  17398. F000:EF04            loc_1341:                    ;  xref F000:EF02
  17399. F000:EF04  EB 00                jmp    short loc_1342        ; (EF06)
  17400. F000:EF06            loc_1342:                    ;  xref F000:EF04
  17401. F000:EF06  B0 04                mov    al,4
  17402. F000:EF08  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  17403.                                         ;  al = 4, inhibit IRQ2
  17404. F000:EF0A  EB 00                jmp    short loc_1343        ; (EF0C)
  17405. F000:EF0C            loc_1343:                    ;  xref F000:EF0A
  17406.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 296
  17407.  
  17408. F000:EF0C  EB 00                jmp    short loc_1344        ; (EF0E)
  17409. F000:EF0E            loc_1344:                    ;  xref F000:EF0C
  17410. F000:EF0E  B0 01                mov    al,1
  17411. F000:EF10  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  17412.                                         ;  al = 1, inhibit IRQ8 RTC
  17413. F000:EF12  EB 00                jmp    short loc_1345        ; (EF14)
  17414. F000:EF14            loc_1345:                    ;  xref F000:EF12
  17415. F000:EF14  EB 00                jmp    short loc_1346        ; (EF16)
  17416. F000:EF16            loc_1346:                    ;  xref F000:EF14
  17417. F000:EF16  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  17418.                                         ;  al = 1, inhibit IRQ0 timer
  17419. F000:EF18  EB 00                jmp    short loc_1347        ; (EF1A)
  17420. F000:EF1A            loc_1347:                    ;  xref F000:EF18
  17421. F000:EF1A  EB 00                jmp    short loc_1348        ; (EF1C)
  17422. F000:EF1C            loc_1348:                    ;  xref F000:EF1A
  17423. F000:EF1C  B0 FF                mov    al,0FFh
  17424. F000:EF1E  E6 A1                out    0A1h,al            ; port 0A1h, 8259-2 int comands
  17425.                                         ;  al = 0FFh, inhibit interrupts
  17426. F000:EF20  EB 00                jmp    short loc_1349        ; (EF22)
  17427. F000:EF22            loc_1349:                    ;  xref F000:EF20
  17428. F000:EF22  EB 00                jmp    short loc_1350        ; (EF24)
  17429. F000:EF24            loc_1350:                    ;  xref F000:EF22
  17430. F000:EF24  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  17431. F000:EF26  C3                    retn
  17432.                 sub_259        endp
  17433.   
  17434. F000:EF27  0030[00]                db    48 dup (0)
  17435.   
  17436.   
  17437.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  17438.   
  17439. F000:EF57            int_0Eh_entry:                    ;  xref F000:FEFF
  17440. F000:EF57  E9 F8D7                jmp    int_0Eh_floppy        ; (E831)
  17441.   
  17442.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17443.                 ;                   SUBROUTINE
  17444.                 ;
  17445.                 ;         Called from:     F000:A6CC, B560, BB79, CC2F, CC4E
  17446.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17447.   
  17448.                 sub_260        proc    near
  17449. F000:EF5A  50                    push    ax
  17450. F000:EF5B            loc_1351:                    ;  xref F000:EF79
  17451. F000:EF5B  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  17452. F000:EF5C  84 C4                test    al,ah
  17453. F000:EF5E  74 1C                jz    short loc_1357        ; Jump if zero
  17454. F000:EF60            loc_1352:                    ;  xref F000:EF66
  17455. F000:EF60  EB 00                jmp    short loc_1353        ; (EF62)
  17456. F000:EF62            loc_1353:                    ;  xref F000:EF60
  17457. F000:EF62  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17458. F000:EF64  A8 10                test    al,10h
  17459. F000:EF66  74 F8                jz    loc_1352        ; Jump if zero
  17460. F000:EF68  49                    dec    cx
  17461. F000:EF69  74 10                jz    short loc_1356        ; Jump if zero
  17462. F000:EF6B  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  17463. F000:EF6C  84 C4                test    al,ah
  17464. F000:EF6E  74 0C                jz    short loc_1357        ; Jump if zero
  17465.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 297
  17466.  
  17467. F000:EF70            loc_1354:                    ;  xref F000:EF76
  17468. F000:EF70  EB 00                jmp    short loc_1355        ; (EF72)
  17469. F000:EF72            loc_1355:                    ;  xref F000:EF70
  17470. F000:EF72  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17471. F000:EF74  A8 10                test    al,10h
  17472. F000:EF76  75 F8                jnz    loc_1354        ; Jump if not zero
  17473. F000:EF78  49                    dec    cx
  17474. F000:EF79  75 E0                jnz    loc_1351        ; Jump if not zero
  17475. F000:EF7B            loc_1356:                    ;  xref F000:EF69
  17476. F000:EF7B  F9                    stc                ; Set carry flag
  17477. F000:EF7C            loc_1357:                    ;  xref F000:EF5E, EF6E
  17478. F000:EF7C  58                    pop    ax
  17479. F000:EF7D  C3                    retn
  17480.                 sub_260        endp
  17481.   
  17482.   
  17483.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17484.                 ;                   SUBROUTINE
  17485.                 ;
  17486.                 ;         Called from:     F000:A756, BB82, BBC8
  17487.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17488.   
  17489.                 sub_261        proc    near
  17490. F000:EF7E  50                    push    ax
  17491. F000:EF7F            loc_1358:                    ;  xref F000:EF9D
  17492. F000:EF7F  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  17493. F000:EF80  84 C4                test    al,ah
  17494. F000:EF82  75 1C                jnz    short loc_1364        ; Jump if not zero
  17495. F000:EF84            loc_1359:                    ;  xref F000:EF8A
  17496. F000:EF84  EB 00                jmp    short loc_1360        ; (EF86)
  17497. F000:EF86            loc_1360:                    ;  xref F000:EF84
  17498. F000:EF86  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17499. F000:EF88  A8 10                test    al,10h
  17500. F000:EF8A  74 F8                jz    loc_1359        ; Jump if zero
  17501. F000:EF8C  49                    dec    cx
  17502. F000:EF8D  74 10                jz    short loc_1363        ; Jump if zero
  17503. F000:EF8F  EC                    in    al,dx            ; port 1F7h, hdsk0-status reg
  17504. F000:EF90  84 C4                test    al,ah
  17505. F000:EF92  75 0C                jnz    short loc_1364        ; Jump if not zero
  17506. F000:EF94            loc_1361:                    ;  xref F000:EF9A
  17507. F000:EF94  EB 00                jmp    short loc_1362        ; (EF96)
  17508. F000:EF96            loc_1362:                    ;  xref F000:EF94
  17509. F000:EF96  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17510. F000:EF98  A8 10                test    al,10h
  17511. F000:EF9A  75 F8                jnz    loc_1361        ; Jump if not zero
  17512. F000:EF9C  49                    dec    cx
  17513. F000:EF9D  75 E0                jnz    loc_1358        ; Jump if not zero
  17514. F000:EF9F            loc_1363:                    ;  xref F000:EF8D
  17515. F000:EF9F  F9                    stc                ; Set carry flag
  17516. F000:EFA0            loc_1364:                    ;  xref F000:EF82, EF92
  17517. F000:EFA0  58                    pop    ax
  17518. F000:EFA1  C3                    retn
  17519.                 sub_261        endp
  17520.   
  17521.   
  17522.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17523.                 ;                   SUBROUTINE
  17524.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 298
  17525.  
  17526.                 ;
  17527.                 ;         Called from:     F000:A735, BCDB, BCE2, C9FA
  17528.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17529.   
  17530.                 sub_262        proc    near
  17531. F000:EFA2  50                    push    ax
  17532. F000:EFA3            loc_1365:                    ;  xref F000:EFC1
  17533. F000:EFA3  F6 07 80                test    byte ptr [bx],80h
  17534. F000:EFA6  75 1C                jnz    short loc_1372        ; Jump if not zero
  17535. F000:EFA8            loc_1366:                    ;  xref F000:EFAE
  17536. F000:EFA8  EB 00                jmp    short loc_1367        ; (EFAA)
  17537. F000:EFAA            loc_1367:                    ;  xref F000:EFA8
  17538. F000:EFAA  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17539. F000:EFAC  A8 10                test    al,10h
  17540. F000:EFAE  74 F8                jz    loc_1366        ; Jump if zero
  17541. F000:EFB0  49                    dec    cx
  17542. F000:EFB1  74 10                jz    short loc_1371        ; Jump if zero
  17543. F000:EFB3  F6 07 80                test    byte ptr [bx],80h
  17544. F000:EFB6  75 0C                jnz    short loc_1372        ; Jump if not zero
  17545. F000:EFB8            loc_1368:                    ;  xref F000:EFBE
  17546. F000:EFB8  EB 00                jmp    short loc_1369        ; (EFBA)
  17547. F000:EFBA            loc_1369:                    ;  xref F000:EFB8
  17548. F000:EFBA  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17549. F000:EFBC  A8 10                test    al,10h
  17550. F000:EFBE  75 F8                jnz    loc_1368        ; Jump if not zero
  17551. F000:EFC0  49                    dec    cx
  17552. F000:EFC1            loc_1370:
  17553. F000:EFC1  75 E0                jnz    loc_1365        ; Jump if not zero
  17554. F000:EFC3            loc_1371:                    ;  xref F000:EFB1
  17555. F000:EFC3  F9                    stc                ; Set carry flag
  17556. F000:EFC4            loc_1372:                    ;  xref F000:EFA6, EFB6
  17557. F000:EFC4  58                    pop    ax
  17558. F000:EFC5  C3                    retn
  17559.                 sub_262        endp
  17560.   
  17561. F000:EFC6  00                    db    0
  17562.   
  17563.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  17564.                                         ; █     Floppy Disk Parameters    █
  17565.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  17566.   
  17567. F000:EFC7  DF            dsk_info_1    db    0DFh            ;  hi nibble = stepping rate in ms
  17568.                                         ;  lo nibble = head unload time, ms
  17569.                                         ;  xref F000:FF1F
  17570. F000:EFC8  02            dsk_info_2    db    2            ;  2nd info byte bit 0 = 0 for DMA
  17571. F000:EFC9  25            dsk_motor_delay    db    25h            ;  Delay after use for motor off
  17572. F000:EFCA  02            dsk_sectr_bytes    db    2            ;  Bytes per sector  0 =  128 bytes
  17573.                                         ;                    1 =  256 bytes
  17574.                                         ;                    2 =  512 bytes
  17575.                                         ;                    3 = 1024 bytes
  17576. F000:EFCB  12            dsk_sector_trac    db    12h            ;  Number of sectors per track
  17577. F000:EFCC  1B            dsk_head_gap    db    1Bh            ;  Gap Length
  17578. F000:EFCD  FF            dsk_data_length    db    0FFh            ;  Data Length
  17579. F000:EFCE  54            dsk_format_gap    db    54h            ;  Format Gap Length
  17580. F000:EFCF  F6            dsk_format_byte    db    0F6h            ;  Format write byte
  17581. F000:EFD0  0F            dsk_settlg_time    db    0Fh            ;  Head load time, in milliseconds
  17582. F000:EFD1  08            dsk_startup_tim    db    8            ;  Motor startup wait time * .125ms
  17583.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 299
  17584.  
  17585.   
  17586.   
  17587.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  17588.   
  17589. F000:EFD2            int_17h_entry:                    ;  xref F000:FF11
  17590. F000:EFD2  E9 0887                jmp    int_17h_printer        ; (F85C)
  17591. F000:EFD5  4A 23 52 0A 13 24            db    4Ah, 23h, 52h, 0Ah, 13h, 24h
  17592. F000:EFDB  24 34 A4 A4 0A 73            db    24h, 34h, 0A4h, 0A4h, 0Ah, 73h
  17593. F000:EFE1  34 AC 4C 84 2C A4            db    34h, 0ACh, 4Ch, 84h, 2Ch, 0A4h
  17594. F000:EFE7  0A 53 7C 24 7A 0A            db    0Ah, 53h, 7Ch, 24h, 7Ah, 0Ah
  17595. F000:EFED  92 D2 CA B2 6A 0A            db    92h, 0D2h, 0CAh, 0B2h, 6Ah, 0Ah
  17596. F000:EFF3  92 D2 CA BA 71 59            db    92h, 0D2h, 0CAh, 0BAh, 71h, 59h
  17597. F000:EFF9  B2 D2 8A 0A 0A BB            db    0B2h, 0D2h, 8Ah, 0Ah, 0Ah, 0BBh
  17598. F000:EFFF  14 6C 6C 34 D4 0A            db    14h, 6Ch, 6Ch, 34h, 0D4h, 0Ah
  17599. F000:F005  9B 84 14 2C 6A 0A            db    9Bh, 84h, 14h, 2Ch, 6Ah, 0Ah
  17600. F000:F00B  B3 8C 8C 34 9C 0A            db    0B3h, 8Ch, 8Ch, 34h, 9Ch, 0Ah
  17601. F000:F011  73 84 7C AC 24 6C            db    73h, 84h, 7Ch, 0ACh, 24h, 6Ch
  17602. F000:F017  14 54 9C 6A 71 59            db    14h, 54h, 9Ch, 6Ah, 71h, 59h
  17603. F000:F01D  0A 7B 34 C4 0A 5B            db    0Ah, 7Bh, 34h, 0C4h, 0Ah, 5Bh
  17604. F000:F023  34 9C A4 34 D4 0A            db    34h, 9Ch, 0A4h, 34h, 0D4h, 0Ah
  17605. F000:F029  72 0A 8A C2 8A AA            db    72h, 0Ah, 8Ah, 0C2h, 8Ah, 0AAh
  17606. F000:F02F  A2 6A 71 59 4A 9A            db    0A2h, 6Ah, 71h, 59h, 4Ah, 9Ah
  17607. F000:F035  8A 92 52 0A C2 AA            db    8Ah, 92h, 52h, 0Ah, 0C2h, 0AAh
  17608. F000:F03B  AA 72 D2 92 9A BA            db    0AAh, 72h, 0D2h, 92h, 9Ah, 0BAh
  17609. F000:F041  7A                    db    7Ah
  17610.   
  17611.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17612.                 ;                   SUBROUTINE
  17613.                 ;
  17614.                 ;         Called from:     F000:9305
  17615.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17616.   
  17617.                 sub_263        proc    near
  17618. F000:F042  BE E300                mov    si,0E300h
  17619. F000:F045            loc_1373:                    ;  xref F000:F051
  17620. F000:F045  2E: 8A 04                mov    al,cs:[si]
  17621. F000:F048  46                    inc    si
  17622. F000:F049  0A C0                or    al,al            ; Zero ?
  17623. F000:F04B  74 06                jz    short loc_ret_1374    ; Jump if zero
  17624. F000:F04D  B4 0E                mov    ah,0Eh
  17625. F000:F04F  CD 10                int    10h            ; Video display   ah=functn 0Eh
  17626.                                         ;  write char al, teletype mode
  17627. F000:F051  EB F2                jmp    short loc_1373        ; (F045)
  17628.   
  17629. F000:F053            loc_ret_1374:                    ;  xref F000:F04B
  17630. F000:F053  C3                    retn
  17631.                 sub_263        endp
  17632.   
  17633. F000:F054  0011[00]                db    17 dup (0)
  17634.   
  17635.   
  17636.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  17637.   
  17638. F000:F065            int_10h_entry:                    ;  xref F000:FF03
  17639. F000:F065  E9 94D4                jmp    int_10h_video        ; (853C)
  17640.   
  17641.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17642.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 300
  17643.  
  17644.                 ;                   SUBROUTINE
  17645.                 ;
  17646.                 ;         Called from:     F000:8E00, 8E27, 934E, 9357, 944A, 9453, 96E9
  17647.                 ;                  9725, 9793, 97B9, 97BF, A268, A57B, A6FB
  17648.                 ;                  B5F7, B6ED, B9B0, BB6E, BBA6, BBBE, BC8A
  17649.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17650.   
  17651.                 sub_264        proc    near
  17652. F000:F068  50                    push    ax
  17653. F000:F069  83 C1 02                add    cx,2
  17654. F000:F06C            loc_1375:                    ;  xref F000:F072, F080
  17655. F000:F06C  EB 00                jmp    short loc_1376        ; (F06E)
  17656. F000:F06E            loc_1376:                    ;  xref F000:F06C
  17657. F000:F06E  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17658. F000:F070  A8 10                test    al,10h
  17659. F000:F072  74 F8                jz    loc_1375        ; Jump if zero
  17660. F000:F074  49                    dec    cx
  17661. F000:F075  74 0B                jz    short loc_1379        ; Jump if zero
  17662. F000:F077            loc_1377:                    ;  xref F000:F07D
  17663. F000:F077  EB 00                jmp    short loc_1378        ; (F079)
  17664. F000:F079            loc_1378:                    ;  xref F000:F077
  17665. F000:F079  E4 61                in    al,61h            ; port 61h, 8255 port B, read
  17666. F000:F07B  A8 10                test    al,10h
  17667. F000:F07D  75 F8                jnz    loc_1377        ; Jump if not zero
  17668. F000:F07F  49                    dec    cx
  17669. F000:F080  75 EA                jnz    loc_1375        ; Jump if not zero
  17670. F000:F082            loc_1379:                    ;  xref F000:F075
  17671. F000:F082  58                    pop    ax
  17672. F000:F083  C3                    retn
  17673.                 sub_264        endp
  17674.   
  17675.   
  17676.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  17677.                 ;                   SUBROUTINE
  17678.                 ;
  17679.                 ;         Called from:     F000:B017, B038, B307, B7F7, B8B3, BA2B
  17680.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  17681.   
  17682.                 sub_265        proc    near
  17683. F000:F084  B0 0E                mov    al,0Eh
  17684. F000:F086  E8 FE16                call    sub_257            ; (EE9F)
  17685. F000:F089  A8 C0                test    al,0C0h
  17686. F000:F08B  75 15                jnz    short loc_ret_1382    ; Jump if not zero
  17687. F000:F08D  B0 10                mov    al,10h
  17688. F000:F08F  E8 FE0D                call    sub_257            ; (EE9F)
  17689. F000:F092  0A D2                or    dl,dl            ; Zero ?
  17690. F000:F094  75 08                jnz    short loc_1381        ; Jump if not zero
  17691. F000:F096  90                    nop                ;
  17692. F000:F097  90                    nop                ;
  17693. F000:F098  90                    nop                ;
  17694. F000:F099  90                    nop                ;
  17695. F000:F09A  90                    nop                ;
  17696. F000:F09B  C0 E8 04                shr    al,4            ; Shift w/zeros fill
  17697. F000:F09E            loc_1381:                    ;  xref F000:F094
  17698. F000:F09E  24 0F                and    al,0Fh
  17699. F000:F0A0  3B E4                cmp    sp,sp
  17700.   
  17701.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 301
  17702.  
  17703. F000:F0A2            loc_ret_1382:                    ;  xref F000:F08B
  17704. F000:F0A2  C3                    retn
  17705.                 sub_265        endp
  17706.   
  17707. F000:F0A3  00                    db    0
  17708.   
  17709.                                         ; █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  17710.                                         ; █    Video Hardware Registers   █
  17711.                                         ; █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  17712.   
  17713. F000:F0A4  38 28 2D 0A 1F 06    video_hdwr_tbl1    db    38h, 28h, 2Dh, 0Ah, 1Fh, 6    ;   mode CGA 40 columns x 25 lines
  17714.                                         ;  xref F000:FF1D
  17715. F000:F0AA  19 1C 02 07 06 07            db    19h, 1Ch, 2, 7, 6, 7
  17716. F000:F0B0  00 00 00 00                db    0, 0, 0, 0
  17717. F000:F0B4  71 50 5A 0A 1F 06    video_hdrw_tbl2    db    71h, 50h, 5Ah, 0Ah, 1Fh, 6    ;   mode CGA 80 columns x 25 lines
  17718. F000:F0BA  19 1C 02 07 06 07            db    19h, 1Ch, 2, 7, 6, 7
  17719. F000:F0C0  00 00 00 00                db    0, 0, 0, 0
  17720. F000:F0C4  38 28 2D 0A 7F 06    video_hdwr_tbl3    db    38h, 28h, 2Dh, 0Ah, 7Fh, 6    ;   mode CGA graphics
  17721. F000:F0CA  64 70 02 01 06 07            db    64h, 70h, 2, 1, 6, 7
  17722. F000:F0D0  00 00 00 00                db    0, 0, 0, 0
  17723. F000:F0D4  61 50 52 0F 19 06    video_hdwr_tbl4    db    61h, 50h, 52h, 0Fh, 19h, 6    ;   mode MDA 80 columns x 25 lines
  17724. F000:F0DA  19 19 02 0D 0B 0C            db    19h, 19h, 2, 0Dh, 0Bh, 0Ch
  17725. F000:F0E0  00 00 00 00                db    0, 0, 0, 0
  17726. F000:F0E4  0800            video_buf_size1    dw    800h            ; Video buffer bytes CGA 40x25
  17727. F000:F0E6  1000            video_buf_size2    dw    1000h            ; Video buffer bytes CGA 80x25
  17728. F000:F0E8  4000            video_buf_size3    dw    4000h            ; Video buffer bytes CGA Graphics
  17729. F000:F0EA  4000            video_buf_size4    dw    4000h            ; Video buffer bytes CGA Graphics
  17730. F000:F0EC  28 28 50 50 28 28    video_columntbl    db    28h, 28h, 50h, 50h, 28h, 28h    ; Video columns per modes 0-7
  17731. F000:F0F2  50 50                db    50h, 50h
  17732. F000:F0F4  2C 28 2D 29 2A 2E    video_hdwr_mode    db    2Ch, 28h, 2Dh, 29h, 2Ah, 2Eh    ; Video hardware modes (0-7)
  17733. F000:F0FA  1E 29                db    1Eh, 29h
  17734. F000:F0FC  03 03 05 05 03 03            db    3, 3, 5, 5, 3, 3
  17735. F000:F102  03 04 01 03 02 FF            db    3, 4, 1, 3, 2, 0FFh
  17736. F000:F108  03 17 04 00 05 7F            db    3, 17h, 4, 0, 5, 7Fh
  17737. F000:F10E  06 00 07 FF 08 FD            db    6, 0, 7, 0FFh, 8, 0FDh
  17738. F000:F114  09 FF 0A FD 0B 00            db    9, 0FFh, 0Ah, 0FDh, 0Bh, 0
  17739. F000:F11A  0C 00 0D 00 0E 00            db    0Ch, 0, 0Dh, 0, 0Eh, 0
  17740. F000:F120  0F 00 10 00 11 00            db    0Fh, 0, 10h, 0, 11h, 0
  17741. F000:F126  12 00 13 00 14 26            db    12h, 0, 13h, 0, 14h, 26h
  17742. F000:F12C  81 FC 82 00 84 00            db    81h, 0FCh, 82h, 0, 84h, 0
  17743. F000:F132  89 0E F8 03 87 F8            db    89h, 0Eh, 0F8h, 3, 87h, 0F8h
  17744. F000:F138  02 87 BC 03 83 F0            db    2, 87h, 0BCh, 3, 83h, 0F0h
  17745. F000:F13E  03 87 F0 01 07 00            db    3, 87h, 0F0h, 1, 7, 0
  17746. F000:F144  00 00 00 00 00 BC            db    0, 0, 0, 0, 0, 0BCh
  17747. F000:F14A  03 78 03 BC 03 78            db    3, 78h, 3, 0BCh, 3, 78h
  17748. F000:F150  02 BC 03 78 03 BC            db    2, 0BCh, 3, 78h, 3, 0BCh
  17749. F000:F156  03 00 00                db    3, 0, 0
  17750. F000:F159  03F8            data_169    dw    3F8h            ; Data table (indexed access)
  17751.                                         ;  xref F000:F5A0, F5C7
  17752. F000:F15B  F8 02 F8 02 E8 03            db    0F8h, 2, 0F8h, 2, 0E8h, 3
  17753. F000:F161  F8 03 E8 03 E8 03            db    0F8h, 3, 0E8h, 3, 0E8h, 3
  17754. F000:F167  E8 02 F8 03 F8 02            db    0E8h, 2, 0F8h, 3, 0F8h, 2
  17755. F000:F16D  F8 02 E8 02 F8 03            db    0F8h, 2, 0E8h, 2, 0F8h, 3
  17756. F000:F173  E8 02 E8 02 00 00            db    0E8h, 2, 0E8h, 2, 0, 0
  17757. F000:F179  F8 03 F8 02 F8 02            db    0F8h, 3, 0F8h, 2, 0F8h, 2
  17758. F000:F17F  E8 03 F8 03 E8 03            db    0E8h, 3, 0F8h, 3, 0E8h, 3
  17759. F000:F185  E8 03 00 00 F8 03            db    0E8h, 3, 0, 0, 0F8h, 3
  17760.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 302
  17761.  
  17762. F000:F18B  F8 02 F8 02 00 00            db    0F8h, 2, 0F8h, 2, 0, 0
  17763. F000:F191  F8 03 00                db    0F8h, 3, 0
  17764. F000:F194  0007[00]                db    7 dup (0)
  17765. F000:F19B  C0 00 C0 04 C0 0C            db    0C0h, 0, 0C0h, 4, 0C0h, 0Ch
  17766. F000:F1A1  C5 00 E0 01 C5 05            db    0C5h, 0, 0E0h, 1, 0C5h, 5
  17767. F000:F1A7  C5 0D C5 04 C0 05            db    0C5h, 0Dh, 0C5h, 4, 0C0h, 5
  17768. F000:F1AD  E0 07 C5 0F C5 0C            db    0E0h, 7, 0C5h, 0Fh, 0C5h, 0Ch
  17769. F000:F1B3  C0 0D C0 0F E0 11            db    0C0h, 0Dh, 0C0h, 0Fh, 0E0h, 11h
  17770. F000:F1B9  C3 00 E2 01 C4 05            db    0C3h, 0, 0E2h, 1, 0C4h, 5
  17771. F000:F1BF  C4 0D E3 01 E0 02            db    0C4h, 0Dh, 0E3h, 1, 0E0h, 2
  17772. F000:F1C5  E3 06 E3 0E C3 05            db    0E3h, 6, 0E3h, 0Eh, 0C3h, 5
  17773. F000:F1CB  E2 06 E0 08 C5 0F            db    0E2h, 6, 0E0h, 8, 0C5h, 0Fh
  17774. F000:F1D1  C3 0D E2 0E C0 0F            db    0C3h, 0Dh, 0E2h, 0Eh, 0C0h, 0Fh
  17775.   
  17776. F000:F1D7            locloop_1383:
  17777. F000:F1D7  E0 12                loopnz    short locloop_1384    ; Loop if zf=0, cx>0
  17778.   
  17779. F000:F1D9  C2 C204                retn    0C204h
  17780. F000:F1DC  05 E2 07 C4 0F C1            db    5, 0E2h, 7, 0C4h, 0Fh, 0C1h
  17781. F000:F1E2  05 E0 06 E2 08 C4            db    5, 0E0h, 6, 0E2h, 8, 0C4h
  17782. F000:F1E8  0F E3 07                db    0Fh, 0E3h, 7
  17783.   
  17784. F000:F1EB            locloop_1384:                    ;  xref F000:F1D7
  17785. F000:F1EB  E3 08                jcxz    short loc_1385        ; Jump if cx=0
  17786. F000:F1ED  E0 0A                loopnz    short locloop_1386    ; Loop if zf=0, cx>0
  17787.   
  17788. F000:F1EF  E3 10                jcxz    short loc_1387        ; Jump if cx=0
  17789. F000:F1F1  C3                    retn
  17790. F000:F1F2  0F C3 0F                db    0Fh, 0C3h, 0Fh
  17791. F000:F1F5            loc_1385:                    ;  xref F000:F1EB
  17792. F000:F1F5  E2 10        ;*        loop    short locloop_1388    ;*Loop if cx > 0
  17793.   
  17794. F000:F1F5  E2 10                db    0E2h, 10h
  17795. F000:F1F7  E0 14                loopnz    short locloop_1389    ; Loop if zf=0, cx>0
  17796.   
  17797.   
  17798. F000:F1F9            locloop_1386:                    ;  xref F000:F1ED
  17799. F000:F1F9  C3                    retn
  17800. F000:F1FA  0C C2 0D C2 0F E2            db    0Ch, 0C2h, 0Dh, 0C2h, 0Fh, 0E2h
  17801. F000:F200  11                    db    11h
  17802. F000:F201            loc_1387:                    ;  xref F000:F1EF
  17803. F000:F201  C1 0D E0                ror    word ptr [di],0E0h    ; Rotate
  17804. F000:F204  0E                    push    cs
  17805. F000:F205  C2 E20F                retn    0E20Fh
  17806. F000:F208  12 C1 0F C1 0F            db    12h, 0C1h, 0Fh, 0C1h, 0Fh
  17807.   
  17808. F000:F20D            locloop_1389:                    ;  xref F000:F1F7
  17809. F000:F20D  E0 10        ;*        loopnz    short locloop_1390    ;*Loop if zf=0, cx>0
  17810.   
  17811. F000:F20D  E0 10                db    0E0h, 10h
  17812. F000:F20F  E2 14        ;*        loop    short locloop_1392    ;*Loop if cx > 0
  17813.   
  17814. F000:F20F  E2 14                db    0E2h, 14h
  17815. F000:F211  E1 11                loopz    short locloop_1391    ; Loop if zf=1, cx>0
  17816.   
  17817. F000:F213  E3 12                jcxz    short loc_1393        ; Jump if cx=0
  17818. F000:F215  E3 14        ;*        jcxz    short loc_1394        ;*Jump if cx=0
  17819.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 303
  17820.  
  17821. F000:F215  E3 14                db    0E3h, 14h
  17822. F000:F217  E0 16                loopnz    short $+18h        ; Loop if zf=0, cx>0
  17823.   
  17824. F000:F219  CF                    iret                ; Interrupt return
  17825. F000:F21A  00 E6 01 C6 05            db    0, 0E6h, 1, 0C6h, 5
  17826.   
  17827. F000:F21F            locloop_1390:                    ;  xref F000:F20D
  17828. F000:F21F  C6 0D E7 01 E5            db    0C6h, 0Dh, 0E7h, 1, 0E5h
  17829.   
  17830. F000:F224            locloop_1391:                    ;  xref F000:F211
  17831. F000:F224  02 E7                add    ah,bh
  17832. F000:F226  06                    push    es
  17833. F000:F227            loc_1393:                    ;  xref F000:F213
  17834. F000:F227  E7 0E                out    0Eh,ax            ; port 0Eh, DMA-1 clr mask reg
  17835. F000:F229  C7 05 06E6                mov    word ptr [di],6E6h
  17836. F000:F22D  E5 08                in    ax,8            ; port 8, DMA-1 status reg
  17837. F000:F22F  C5 0F                lds    cx,dword ptr [bx]    ; Load 32 bit ptr
  17838. F000:F231  C7 0D E6 0E C0 0F            db    0C7h, 0Dh, 0E6h, 0Eh, 0C0h, 0Fh
  17839. F000:F237  E5 12 EA 01 EA 02            db    0E5h, 12h, 0EAh, 1, 0EAh, 2
  17840. F000:F23D  EA 06 EA 0E EB 02            db    0EAh, 6, 0EAh, 0Eh, 0EBh, 2
  17841. F000:F243  F0 03 E1 06 E1 0E            db    0F0h, 3, 0E1h, 6, 0E1h, 0Eh
  17842. F000:F249  EE 06 E2 06 FA 09            db    0EEh, 6, 0E2h, 6, 0FAh, 9
  17843. F000:F24F  C5 0F EE 0E EE 0E            db    0C5h, 0Fh, 0EEh, 0Eh, 0EEh, 0Eh
  17844. F000:F255  C0 0F FA 13 CA 05            db    0C0h, 0Fh, 0FAh, 13h, 0CAh, 5
  17845. F000:F25B  E9 06 E8 08 C4 0F            db    0E9h, 6, 0E8h, 8, 0C4h, 0Fh
  17846. F000:F261  ED 06 E0 06 FD 09            db    0EDh, 6, 0E0h, 6, 0FDh, 9
  17847. F000:F267  C4 0F EB 08 F9 09            db    0C4h, 0Fh, 0EBh, 8, 0F9h, 9
  17848. F000:F26D  E0 0A E3 10 C3 0F            db    0E0h, 0Ah, 0E3h, 10h, 0C3h, 0Fh
  17849. F000:F273  C3 0F E2 10 E0 14            db    0C3h, 0Fh, 0E2h, 10h, 0E0h, 14h
  17850. F000:F279  CA 0D E9 0E C2 0F            db    0CAh, 0Dh, 0E9h, 0Eh, 0C2h, 0Fh
  17851. F000:F27F  E8 12 EC 0E E0 0E            db    0E8h, 12h, 0ECh, 0Eh, 0E0h, 0Eh
  17852. F000:F285  CB 0F FD 13 CB 0F            db    0CBh, 0Fh, 0FDh, 13h, 0CBh, 0Fh
  17853. F000:F28B  CB 0F E0 10 E2 14            db    0CBh, 0Fh, 0E0h, 10h, 0E2h, 14h
  17854. F000:F291  EB 12 F6 13 E1 14            db    0EBh, 12h, 0F6h, 13h, 0E1h, 14h
  17855. F000:F297  E0 16 CF 04 C9 05            db    0E0h, 16h, 0CFh, 4, 0C9h, 5
  17856. F000:F29D  E9 07 C6 0F CC 05            db    0E9h, 7, 0C6h, 0Fh, 0CCh, 5
  17857. F000:F2A3  E5 06 E6 08 C6 0F            db    0E5h, 6, 0E6h, 8, 0C6h, 0Fh
  17858. F000:F2A9  E7 07                db    0E7h, 7
  17859.   
  17860. F000:F2AB            locloop_1395:
  17861. F000:F2AB  E7 08                out    8,ax            ; port 8, DMA-1 command reg
  17862. F000:F2AD  E8 E70A                call    sub_233            ; (D9BA)
  17863. F000:F2B0  10 C7                adc    bh,al
  17864. F000:F2B2  0F C7 0F E6 10 E5            db    0Fh, 0C7h, 0Fh, 0E6h, 10h, 0E5h
  17865. F000:F2B8  14 CE 05 E8 06 E9            db    14h, 0CEh, 5, 0E8h, 6, 0E9h
  17866. F000:F2BE  08 C6 0F EB 06 E5            db    8, 0C6h, 0Fh, 0EBh, 6, 0E5h
  17867. F000:F2C4  06 F1 09 C6 0F ED            db    6, 0F1h, 9, 0C6h, 0Fh, 0EDh
  17868. F000:F2CA  08 F8 09 E5 0A E7            db    8, 0F8h, 9, 0E5h, 0Ah, 0E7h
  17869. F000:F2D0  10 C7 0F C7 0F E6            db    10h, 0C7h, 0Fh, 0C7h, 0Fh, 0E6h
  17870. F000:F2D6  10 E5 14 EA 07 EA            db    10h, 0E5h, 14h, 0EAh, 7, 0EAh
  17871. F000:F2DC  08 E9 0A EA 10 EE            db    8, 0E9h, 0Ah, 0EAh, 10h, 0EEh
  17872. F000:F2E2  08 F0 09 E8 0A EA            db    8, 0F0h, 9, 0E8h, 0Ah, 0EAh
  17873. F000:F2E8  10 ED 0A EF 0A F0            db    10h, 0EDh, 0Ah, 0EFh, 0Ah, 0F0h
  17874. F000:F2EE  0B E1 10 EE 10 EE            db    0Bh, 0E1h, 10h, 0EEh, 10h, 0EEh
  17875. F000:F2F4  10 E3 10 FA 15 CA            db    10h, 0E3h, 10h, 0FAh, 15h, 0CAh
  17876. F000:F2FA  0F CA 0F E9 10 E8            db    0Fh, 0CAh, 0Fh, 0E9h, 10h, 0E8h
  17877. F000:F300  14 CA 0F CA 0F E9            db    14h, 0CAh, 0Fh, 0CAh, 0Fh, 0E9h
  17878.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 304
  17879.  
  17880. F000:F306  10 E8 14 ED 10 ED            db    10h, 0E8h, 14h, 0EDh, 10h, 0EDh
  17881. F000:F30C  10 E0 10 FD 15 EB            db    10h, 0E0h, 10h, 0FDh, 15h, 0EBh
  17882. F000:F312  14 EB 14 F9 15 E0            db    14h, 0EBh, 14h, 0F9h, 15h, 0E0h
  17883. F000:F318  16 C6 0C C9 0D C9            db    16h, 0C6h, 0Ch, 0C9h, 0Dh, 0C9h
  17884. F000:F31E  0F E9 11 CC 0D E5            db    0Fh, 0E9h, 11h, 0CCh, 0Dh, 0E5h
  17885. F000:F324  0E C9 0F E6 12 CC            db    0Eh, 0C9h, 0Fh, 0E6h, 12h, 0CCh
  17886. F000:F32A  0F CC 0F E5 10 E6            db    0Fh, 0CCh, 0Fh, 0E5h, 10h, 0E6h
  17887. F000:F330  14 EC 11 E7 12 E7            db    14h, 0ECh, 11h, 0E7h, 12h, 0E7h
  17888. F000:F336  14 E7 16 CE 0D E8            db    14h, 0E7h, 16h, 0CEh, 0Dh, 0E8h
  17889. F000:F33C  0E C9 0F E9 12 EB            db    0Eh, 0C9h, 0Fh, 0E9h, 12h, 0EBh
  17890. F000:F342  0E EB 0E C9 0F FB            db    0Eh, 0EBh, 0Eh, 0C9h, 0Fh, 0FBh
  17891. F000:F348  13 CC 0F CC 0F E5            db    13h, 0CCh, 0Fh, 0CCh, 0Fh, 0E5h
  17892. F000:F34E  10 E6 14 ED 12 F8            db    10h, 0E6h, 14h, 0EDh, 12h, 0F8h
  17893. F000:F354  13 E7 14 E6 16 CE            db    13h, 0E7h, 14h, 0E6h, 16h, 0CEh
  17894. F000:F35A  0F CF 0F E8 10 E9            db    0Fh, 0CFh, 0Fh, 0E8h, 10h, 0E9h
  17895. F000:F360  14 CE 0F CE 0F E8            db    14h, 0CEh, 0Fh, 0CEh, 0Fh, 0E8h
  17896. F000:F366  10 E9 14 EB 10 EB            db    10h, 0E9h, 14h, 0EBh, 10h, 0EBh
  17897. F000:F36C  10 E5 10 FB 15 ED            db    10h, 0E5h, 10h, 0FBh, 15h, 0EDh
  17898. F000:F372  14 EC 14 F8 15 E6            db    14h, 0ECh, 14h, 0F8h, 15h, 0E6h
  17899. F000:F378  16 EE 11 EA 12 EA            db    16h, 0EEh, 11h, 0EAh, 12h, 0EAh
  17900. F000:F37E  14 EA 16 EE 12 FF            db    14h, 0EAh, 16h, 0EEh, 12h, 0FFh
  17901. F000:F384  13 EA 14 E8 16 EE            db    13h, 0EAh, 14h, 0E8h, 16h, 0EEh
  17902. F000:F38A  14 EE 14 F0 15 EA            db    14h, 0EEh, 14h, 0F0h, 15h, 0EAh
  17903. F000:F390  16 EB 16 EB 16 EB            db    16h, 0EBh, 16h, 0EBh, 16h, 0EBh
  17904. F000:F396  16 F0 17 10 00 20            db    16h, 0F0h, 17h, 10h, 0, 20h
  17905. F000:F39C  00 30 00 40 00 40            db    0, 30h, 0, 40h, 0, 40h
  17906. F000:F3A2  00 50 00 60 00 80            db    0, 50h, 0, 60h, 0, 80h
  17907. F000:F3A8  00 90 00 A0 00 C0            db    0, 90h, 0, 0A0h, 0, 0C0h
  17908. F000:F3AE  00 00 01 00 01 10            db    0, 0, 1, 0, 1, 10h
  17909. F000:F3B4  01 20 01 40 01 80            db    1, 20h, 1, 40h, 1, 80h
  17910. F000:F3BA  01 00 02 10 02 20            db    1, 0, 2, 10h, 2, 20h
  17911. F000:F3C0  02 40 02 80 02 00            db    2, 40h, 2, 80h, 2, 0
  17912. F000:F3C6  03 FF 03 F7 C5 00            db    3, 0FFh, 3, 0F7h, 0C5h, 0
  17913. F000:F3CC  40 74 05 E6 F9 E9            db    40h, 74h, 5, 0E6h, 0F9h, 0E9h
  17914. F000:F3D2  CF 8F                db    0CFh, 8Fh
  17915. F000:F3D4            loc_1397:
  17916. F000:F3D4  B8 00C0                mov    ax,0C0h
  17917. F000:F3D7  90                    nop                ;
  17918. F000:F3D8  BC F3DE                mov    sp,0F3DEh
  17919. F000:F3DB  E9 FAB4                jmp    loc_1324        ; (EE92)
  17920. F000:F3DE  E0 F3 E6 FB B8 12            db    0E0h, 0F3h, 0E6h, 0FBh, 0B8h, 12h
  17921. F000:F3E4  00 90 BC EC F3 E9            db    0, 90h, 0BCh, 0ECh, 0F3h, 0E9h
  17922. F000:F3EA  7C 03 EE F3 B0 00            db    7Ch, 3, 0EEh, 0F3h, 0B0h, 0
  17923. F000:F3F0  BC F6 F3 E9 83 03            db    0BCh, 0F6h, 0F3h, 0E9h, 83h, 3
  17924. F000:F3F6  F8 F3 24 10 74 02            db    0F8h, 0F3h, 24h, 10h, 74h, 2
  17925. F000:F3FC  B0 80 8A D8 B8 B8            db    0B0h, 80h, 8Ah, 0D8h, 0B8h, 0B8h
  17926. F000:F402  B8 90 BC 0A F4 E9            db    0B8h, 90h, 0BCh, 0Ah, 0F4h, 0E9h
  17927. F000:F408  7F FA 0C F4 24 7F            db    7Fh, 0FAh, 0Ch, 0F4h, 24h, 7Fh
  17928. F000:F40E  0A C3 86 C4 BC 18            db    0Ah, 0C3h, 86h, 0C4h, 0BCh, 18h
  17929. F000:F414  F4 E9 7A FA 1A F4            db    0F4h, 0E9h, 7Ah, 0FAh, 1Ah, 0F4h
  17930. F000:F41A  F6 C4 08 75 0F B0            db    0F6h, 0C4h, 8, 75h, 0Fh, 0B0h
  17931. F000:F420  8E 90 BC 28 F4 E9            db    8Eh, 90h, 0BCh, 28h, 0F4h, 0E9h
  17932. F000:F426  61 FA 2A F4 A8 C0            db    61h, 0FAh, 2Ah, 0F4h, 0A8h, 0C0h
  17933. F000:F42C  74 03 E9 8B 00 33            db    74h, 3, 0E9h, 8Bh, 0, 33h
  17934. F000:F432  D2 33 C0 B7 C1 8A            db    0D2h, 33h, 0C0h, 0B7h, 0C1h, 8Ah
  17935. F000:F438  C7 90 BC 40 F4 E9            db    0C7h, 90h, 0BCh, 40h, 0F4h, 0E9h
  17936. F000:F43E  49 FA 42 F4 03 D0            db    49h, 0FAh, 42h, 0F4h, 3, 0D0h
  17937.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 305
  17938.  
  17939. F000:F444  FE C7 80 FF FE 75            db    0FEh, 0C7h, 80h, 0FFh, 0FEh, 75h
  17940. F000:F44A  EC 8A C7 90 BC 54            db    0ECh, 8Ah, 0C7h, 90h, 0BCh, 54h
  17941. F000:F450  F4 E9 35 FA 56 F4            db    0F4h, 0E9h, 35h, 0FAh, 56h, 0F4h
  17942. F000:F456  8A E0 B0 FF BC 60            db    8Ah, 0E0h, 0B0h, 0FFh, 0BCh, 60h
  17943. F000:F45C  F4 E9 29 FA 62 F4            db    0F4h, 0E9h, 29h, 0FAh, 62h, 0F4h
  17944. F000:F462  3B C2 75 04 0B D2            db    3Bh, 0C2h, 75h, 4, 0Bh, 0D2h
  17945. F000:F468  75 03 EB 50 90 B9            db    75h, 3, 0EBh, 50h, 90h, 0B9h
  17946. F000:F46E  17 00 BE 04 F1 B7            db    17h, 0, 0BEh, 4, 0F1h, 0B7h
  17947. F000:F474  C1 2E 8A 24 46 46            db    0C1h, 2Eh, 8Ah, 24h, 46h, 46h
  17948. F000:F47A  8A C7 FE C7 BC 84            db    8Ah, 0C7h, 0FEh, 0C7h, 0BCh, 84h
  17949. F000:F480  F4 E9 05 FA 86 F4            db    0F4h, 0E9h, 5, 0FAh, 86h, 0F4h
  17950. F000:F486  86 C4 BC 8E F4 E9            db    86h, 0C4h, 0BCh, 8Eh, 0F4h, 0E9h
  17951. F000:F48C  DA 02 90 F4 E2 E3            db    0DAh, 2, 90h, 0F4h, 0E2h, 0E3h
  17952. F000:F492  B9 17 00 B4 69 B7            db    0B9h, 17h, 0, 0B4h, 69h, 0B7h
  17953. F000:F498  D9 8A C7 FE C7 90            db    0D9h, 8Ah, 0C7h, 0FEh, 0C7h, 90h
  17954. F000:F49E  BC A4 F4 E9 E5 F9            db    0BCh, 0A4h, 0F4h, 0E9h, 0E5h, 0F9h
  17955. F000:F4A4  A6 F4 86 C4 BC AE            db    0A6h, 0F4h, 86h, 0C4h, 0BCh, 0AEh
  17956. F000:F4AA  F4 E9 D8 02 B0 F4            db    0F4h, 0E9h, 0D8h, 2, 0B0h, 0F4h
  17957. F000:F4B0  86 C4 FE C4 E2 E3            db    86h, 0C4h, 0FEh, 0C4h, 0E2h, 0E3h
  17958. F000:F4B6  E9 59 DA E9 13 FF            db    0E9h, 59h, 0DAh, 0E9h, 13h, 0FFh
  17959. F000:F4BC            loc_1398:
  17960. F000:F4BC  B9 0017                mov    cx,17h
  17961. F000:F4BF  BE F104                mov    si,0F104h
  17962. F000:F4C2  2E: 8B 04                mov    ax,cs:[si]
  17963. F000:F4C5  46                    inc    si
  17964. F000:F4C6  46                    inc    si
  17965. F000:F4C7  3C 07                cmp    al,7
  17966. F000:F4C9  74 04                je    short loc_1399        ; Jump if equal
  17967. F000:F4CB  3C 09                cmp    al,9
  17968. F000:F4CD  75 08                jne    short loc_1400        ; Jump if not equal
  17969. F000:F4CF            loc_1399:                    ;  xref F000:F4C9
  17970. F000:F4CF  0A DB                or    bl,bl            ; Zero ?
  17971. F000:F4D1  78 12                js    short loc_1402        ; Jump if sign=1
  17972. F000:F4D3  B4 FE                mov    ah,0FEh
  17973. F000:F4D5  EB 0E                jmp    short loc_1402        ; (F4E5)
  17974. F000:F4D7            loc_1400:                    ;  xref F000:F4CD
  17975. F000:F4D7  3C 08                cmp    al,8
  17976. F000:F4D9  74 04                je    short loc_1401        ; Jump if equal
  17977. F000:F4DB  3C 0A                cmp    al,0Ah
  17978. F000:F4DD  75 06                jne    short loc_1402        ; Jump if not equal
  17979. F000:F4DF            loc_1401:                    ;  xref F000:F4D9
  17980. F000:F4DF  0A DB                or    bl,bl            ; Zero ?
  17981. F000:F4E1  78 02                js    short loc_1402        ; Jump if sign=1
  17982. F000:F4E3  B4 F7                mov    ah,0F7h
  17983. F000:F4E5            loc_1402:                    ;  xref F000:F4D1, F4D5, F4DD, F4E1
  17984. F000:F4E5  90                    nop                ;
  17985. F000:F4E6  BC F4EC                mov    sp,0F4ECh
  17986. F000:F4E9  E9 027C                jmp    loc_1434        ; (F768)
  17987. F000:F4EC  EE F4 E2 D2 B9 17            db    0EEh, 0F4h, 0E2h, 0D2h, 0B9h, 17h
  17988. F000:F4F2  00 BE 32 F1 B0 69            db    0, 0BEh, 32h, 0F1h, 0B0h, 69h
  17989. F000:F4F8  2E 8A 24 46 3C 69            db    2Eh, 8Ah, 24h, 46h, 3Ch, 69h
  17990. F000:F4FE  75 02 8A DC                db    75h, 2, 8Ah, 0DCh
  17991. F000:F502            loc_1403:
  17992. F000:F502  3C 6A                cmp    al,6Ah            ; 'j'
  17993. F000:F504  75 02                jne    short loc_1404        ; Jump if not equal
  17994. F000:F506  8A FC                mov    bh,ah
  17995. F000:F508            loc_1404:                    ;  xref F000:F504
  17996.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 306
  17997.  
  17998. F000:F508  BC F50E                mov    sp,0F50Eh
  17999. F000:F50B  E9 0278                jmp    loc_1443        ; (F786)
  18000. F000:F50E  10 F5 FE C0 E2 E4            db    10h, 0F5h, 0FEh, 0C0h, 0E2h, 0E4h
  18001. F000:F514  33 C0 BA 78 02 90            db    33h, 0C0h, 0BAh, 78h, 2, 90h
  18002. F000:F51A  BC 20 F5 E9 12 02            db    0BCh, 20h, 0F5h, 0E9h, 12h, 2
  18003. F000:F520  22 F5 BA 78 03 90            db    22h, 0F5h, 0BAh, 78h, 3, 90h
  18004. F000:F526  BC 2C F5 E9 06 02            db    0BCh, 2Ch, 0F5h, 0E9h, 6, 2
  18005. F000:F52C  2E F5 BA BC 03 90            db    2Eh, 0F5h, 0BAh, 0BCh, 3, 90h
  18006. F000:F532  BC 38 F5 E9 FA 01            db    0BCh, 38h, 0F5h, 0E9h, 0FAh, 1
  18007. F000:F538  3A F5 32 C0 86 C4            db    3Ah, 0F5h, 32h, 0C0h, 86h, 0C4h
  18008. F000:F53E  8B F0 D1 E6 2E 8B            db    8Bh, 0F0h, 0D1h, 0E6h, 2Eh, 8Bh
  18009. F000:F544  84 49 F1 0B C0 74            db    84h, 49h, 0F1h, 0Bh, 0C0h, 74h
  18010. F000:F54A  1C 8A C8 B0 72 90            db    1Ch, 8Ah, 0C8h, 0B0h, 72h, 90h
  18011. F000:F550  BC 56 F5 E9 30 02            db    0BCh, 56h, 0F5h, 0E9h, 30h, 2
  18012. F000:F556  58 F5 8A E1 B0 71            db    58h, 0F5h, 8Ah, 0E1h, 0B0h, 71h
  18013. F000:F55C  BC 62 F5 E9 24 02            db    0BCh, 62h, 0F5h, 0E9h, 24h, 2
  18014. F000:F562  64 F5 80 CB 10 33            db    64h, 0F5h, 80h, 0CBh, 10h, 33h
  18015. F000:F568  C0 BA EA 02 EC A8            db    0C0h, 0BAh, 0EAh, 2, 0ECh, 0A8h
  18016. F000:F56E  F8 75 03 80 CC 08            db    0F8h, 75h, 3, 80h, 0CCh, 8
  18017. F000:F574            loc_1405:
  18018. F000:F574  BA 03EA                mov    dx,3EAh
  18019. F000:F577  EC                    in    al,dx            ; port 3EAh
  18020. F000:F578  A8 F8                test    al,0F8h
  18021. F000:F57A  75 03                jnz    short loc_1406        ; Jump if not zero
  18022. F000:F57C  80 CC 04                or    ah,4
  18023. F000:F57F            loc_1406:                    ;  xref F000:F57A
  18024. F000:F57F  BA 02FA                mov    dx,2FAh
  18025. F000:F582  EC                    in    al,dx            ; port 2FAh, RS232-2 int identy
  18026. F000:F583  A8 F8                test    al,0F8h
  18027. F000:F585  75 03                jnz    short loc_1407        ; Jump if not zero
  18028. F000:F587  80 CC 02                or    ah,2
  18029. F000:F58A            loc_1407:                    ;  xref F000:F585
  18030. F000:F58A  BA 03FA                mov    dx,3FAh
  18031. F000:F58D  EC                    in    al,dx            ; port 3FAh, RS232-1 int identy
  18032. F000:F58E  A8 F8                test    al,0F8h
  18033. F000:F590  75 03                jnz    short loc_1408        ; Jump if not zero
  18034. F000:F592  80 CC 01                or    ah,1
  18035. F000:F595            loc_1408:                    ;  xref F000:F590
  18036. F000:F595  32 C0                xor    al,al            ; Zero register
  18037. F000:F597  86 C4                xchg    al,ah
  18038. F000:F599  8B F0                mov    si,ax
  18039. F000:F59B  D1 E6                shl    si,1            ; Shift w/zeros fill
  18040. F000:F59D  D1 E6                shl    si,1            ; Shift w/zeros fill
  18041. F000:F59F  2E: 8B 84 F159            mov    ax,cs:data_169[si]    ; (F000:F159=3F8h)
  18042. F000:F5A4  0B C0                or    ax,ax            ; Zero ?
  18043. F000:F5A6  74 1B                jz    short loc_1409        ; Jump if zero
  18044. F000:F5A8  8A C8                mov    cl,al
  18045. F000:F5AA  B0 6C                mov    al,6Ch            ; 'l'
  18046. F000:F5AC  BC F5B2                mov    sp,0F5B2h
  18047. F000:F5AF  E9 01D4                jmp    loc_1443        ; (F786)
  18048. F000:F5B2  B4 F5 8A E1 B0 6B            db    0B4h, 0F5h, 8Ah, 0E1h, 0B0h, 6Bh
  18049. F000:F5B8  BC BE F5 E9 C8 01            db    0BCh, 0BEh, 0F5h, 0E9h, 0C8h, 1
  18050. F000:F5BE  C0 F5 80 CB 04            db    0C0h, 0F5h, 80h, 0CBh, 4
  18051. F000:F5C3            loc_1409:                    ;  xref F000:F5A6
  18052. F000:F5C3  83 C6 02                add    si,2
  18053. F000:F5C6  2E: 8B 84 F159            mov    ax,cs:data_169[si]    ; (F000:F159=3F8h)
  18054. F000:F5CB  0B C0                or    ax,ax            ; Zero ?
  18055.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 307
  18056.  
  18057. F000:F5CD  74 1C                jz    short loc_1410        ; Jump if zero
  18058. F000:F5CF  8A C8                mov    cl,al
  18059. F000:F5D1  B0 6F                mov    al,6Fh            ; 'o'
  18060. F000:F5D3  90                    nop                ;
  18061. F000:F5D4  BC F5DA                mov    sp,0F5DAh
  18062. F000:F5D7  E9 01AC                jmp    loc_1443        ; (F786)
  18063. F000:F5DA  DC F5 8A E1 B0 6E            db    0DCh, 0F5h, 8Ah, 0E1h, 0B0h, 6Eh
  18064. F000:F5E0  BC E6 F5 E9 A0 01            db    0BCh, 0E6h, 0F5h, 0E9h, 0A0h, 1
  18065. F000:F5E6  E8 F5 80 CF 01            db    0E8h, 0F5h, 80h, 0CFh, 1
  18066. F000:F5EB            loc_1410:                    ;  xref F000:F5CD
  18067. F000:F5EB  BA 03F4                mov    dx,3F4h
  18068. F000:F5EE  EC                    in    al,dx            ; port 3F4h, dsk0 cntrlr status
  18069. F000:F5EF  3C FF                cmp    al,0FFh
  18070. F000:F5F1  75 03                jne    short loc_1411        ; Jump if not equal
  18071. F000:F5F3  80 CB 02                or    bl,2
  18072. F000:F5F6            loc_1411:                    ;  xref F000:F5F1
  18073. F000:F5F6  33 C0                xor    ax,ax            ; Zero register
  18074. F000:F5F8  BA 01F4                mov    dx,1F4h
  18075. F000:F5FB  90                    nop                ;
  18076. F000:F5FC  BC F602                mov    sp,0F602h
  18077. F000:F5FF  E9 0130                jmp    loc_1420        ; (F732)
  18078. F000:F602  04 F6 0A E4 75 03            db    4, 0F6h, 0Ah, 0E4h, 75h, 3
  18079. F000:F608  80 CF 30 B0 69 8A            db    80h, 0CFh, 30h, 0B0h, 69h, 8Ah
  18080. F000:F60E  E3 90 BC 16 F6 E9            db    0E3h, 90h, 0BCh, 16h, 0F6h, 0E9h
  18081. F000:F614  70 01 18 F6 B0 6A            db    70h, 1, 18h, 0F6h, 0B0h, 6Ah
  18082. F000:F61A  8A E7 BC 22 F6 E9            db    8Ah, 0E7h, 0BCh, 22h, 0F6h, 0E9h
  18083. F000:F620  64 01 24 F6 B0 54            db    64h, 1, 24h, 0F6h, 0B0h, 54h
  18084. F000:F626  E6 43 EB 00 EB 00            db    0E6h, 43h, 0EBh, 0, 0EBh, 0
  18085. F000:F62C            loc_1412:
  18086. F000:F62C  B9 0200                mov    cx,200h
  18087. F000:F62F  33 FF                xor    di,di            ; Zero register
  18088. F000:F631  F3/ AB                rep    stosw            ; Rep when cx >0 Store ax to es:[di]
  18089. F000:F633  B0 00                mov    al,0
  18090. F000:F635  E6 8F                out    8Fh,al            ; port 8Fh, DMA page reg ch 4
  18091. F000:F637  EB 00                jmp    short loc_1413        ; (F639)
  18092. F000:F639            loc_1413:                    ;  xref F000:F637
  18093. F000:F639  EB 00                jmp    short loc_1414        ; (F63B)
  18094. F000:F63B            loc_1414:                    ;  xref F000:F639
  18095. F000:F63B  B0 12                mov    al,12h
  18096. F000:F63D  E6 41                out    41h,al            ; port 41h, 8253 timer 1 refsh
  18097. F000:F63F  EB 00                jmp    short loc_1415        ; (F641)
  18098. F000:F641            loc_1415:                    ;  xref F000:F63F
  18099. F000:F641  EB 00                jmp    short loc_1416        ; (F643)
  18100. F000:F643            loc_1416:                    ;  xref F000:F641
  18101. F000:F643  B0 B8                mov    al,0B8h
  18102. F000:F645  90                    nop                ;
  18103. F000:F646  BC F64C                mov    sp,0F64Ch
  18104. F000:F649  E9 F83D                jmp    loc_1321        ; (EE89)
  18105. F000:F64C  4E F6 A8 80 BE 00            db    4Eh, 0F6h, 0A8h, 80h, 0BEh, 0
  18106. F000:F652  18 BF 00 08 BB 00            db    18h, 0BFh, 0, 8, 0BBh, 0
  18107. F000:F658  80 75 09 BE 00 0C            db    80h, 75h, 9, 0BEh, 0, 0Ch
  18108. F000:F65E  BF 00 04 BB 00 40            db    0BFh, 0, 4, 0BBh, 0, 40h
  18109. F000:F664  B9 AA 55 BA 55 AA            db    0B9h, 0AAh, 55h, 0BAh, 55h, 0AAh
  18110. F000:F66A  33 C0 BC 72 F6 E9            db    33h, 0C0h, 0BCh, 72h, 0F6h, 0E9h
  18111. F000:F670  93 00 74 F6 2B F7            db    93h, 0, 74h, 0F6h, 2Bh, 0F7h
  18112. F000:F676  BC 7C F6 E9 89 00            db    0BCh, 7Ch, 0F6h, 0E9h, 89h, 0
  18113. F000:F67C  7E F6 2B F7 BC 86            db    7Eh, 0F6h, 2Bh, 0F7h, 0BCh, 86h
  18114.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 308
  18115.  
  18116. F000:F682  F6 E9 7F 00 88 F6            db    0F6h, 0E9h, 7Fh, 0, 88h, 0F6h
  18117. F000:F688  2B F7 BC 90 F6 EB            db    2Bh, 0F7h, 0BCh, 90h, 0F6h, 0EBh
  18118. F000:F68E  76 90 92 F6 BE 99            db    76h, 90h, 92h, 0F6h, 0BEh, 99h
  18119. F000:F694  F1 D1 E0 03 F0 2E            db    0F1h, 0D1h, 0E0h, 3, 0F0h, 2Eh
  18120. F000:F69A  8A 24 C0 EC 04 80            db    8Ah, 24h, 0C0h, 0ECh, 4, 80h
  18121. F000:F6A0  CC 70 B0 05 BC AA            db    0CCh, 70h, 0B0h, 5, 0BCh, 0AAh
  18122. F000:F6A6  F6 E9 BE 00 AC F6            db    0F6h, 0E9h, 0BEh, 0, 0ACh, 0F6h
  18123. F000:F6AC  2E 8A 24 80 E4 0F            db    2Eh, 8Ah, 24h, 80h, 0E4h, 0Fh
  18124. F000:F6B2  B0 04 BC BA F6 E9            db    0B0h, 4, 0BCh, 0BAh, 0F6h, 0E9h
  18125. F000:F6B8  AE 00 BC F6 2E 8A            db    0AEh, 0, 0BCh, 0F6h, 2Eh, 8Ah
  18126. F000:F6BE  64 01 B0 03 BC C8            db    64h, 1, 0B0h, 3, 0BCh, 0C8h
  18127. F000:F6C4  F6 E9 A0 00 CA F6            db    0F6h, 0E9h, 0A0h, 0, 0CAh, 0F6h
  18128. F000:F6CA  BE 99 F3 8A C4 32            db    0BEh, 99h, 0F3h, 8Ah, 0C4h, 32h
  18129. F000:F6D0  E4 D1 E0 03 F0 2E            db    0E4h, 0D1h, 0E0h, 3, 0F0h, 2Eh
  18130. F000:F6D6  8B 04 81 FF 00 08            db    8Bh, 4, 81h, 0FFh, 0, 8
  18131. F000:F6DC  74 0C D1 E8 0A C0            db    74h, 0Ch, 0D1h, 0E8h, 0Ah, 0C0h
  18132. F000:F6E2  75 02 B0 FF 8A E0            db    75h, 2, 0B0h, 0FFh, 8Ah, 0E0h
  18133. F000:F6E8  EB 0D B0 01 BC F2            db    0EBh, 0Dh, 0B0h, 1, 0BCh, 0F2h
  18134. F000:F6EE  F6 EB 77 90 F4 F6            db    0F6h, 0EBh, 77h, 90h, 0F4h, 0F6h
  18135. F000:F6F4  2E 8A                db    2Eh, 8Ah
  18136. F000:F6F6  24                    db    24h
  18137. F000:F6F7            loc_1417:
  18138. F000:F6F7  B0 02                mov    al,2
  18139. F000:F6F9  90                    nop                ;
  18140. F000:F6FA  BC F700                mov    sp,0F700h
  18141. F000:F6FD  EB 69                jmp    short loc_1434        ; (F768)
  18142. F000:F6FF  90 02 F7 E9 CA FC            db    90h, 2, 0F7h, 0E9h, 0CAh, 0FCh
  18143. F000:F705            loc_1418:
  18144. F000:F705  D0 E0                shl    al,1            ; Shift w/zeros fill
  18145. F000:F707  D0 E0                shl    al,1            ; Shift w/zeros fill
  18146. F000:F709  89 0C                mov    [si],cx
  18147. F000:F70B  89 10                mov    [bx+si],dx
  18148. F000:F70D  39 0C                cmp    [si],cx
  18149. F000:F70F  75 20                jne    short loc_ret_1419    ; Jump if not equal
  18150. F000:F711  39 10                cmp    [bx+si],dx
  18151. F000:F713  75 1C                jne    short loc_ret_1419    ; Jump if not equal
  18152. F000:F715  0C 01                or    al,1
  18153. F000:F717  C1 EB 02                shr    bx,2            ; Shift w/zeros fill
  18154. F000:F71A  89 10                mov    [bx+si],dx
  18155. F000:F71C  C1 E3 02                shl    bx,2            ; Shift w/zeros fill
  18156. F000:F71F  39 0C                cmp    [si],cx
  18157. F000:F721  75 0E                jne    short loc_ret_1419    ; Jump if not equal
  18158. F000:F723  0C 03                or    al,3
  18159. F000:F725  D1 EB                shr    bx,1            ; Shift w/zeros fill
  18160. F000:F727  89 10                mov    [bx+si],dx
  18161. F000:F729  D1 E3                shl    bx,1            ; Shift w/zeros fill
  18162. F000:F72B  39 0C                cmp    [si],cx
  18163. F000:F72D  74 02                je    short loc_ret_1419    ; Jump if equal
  18164. F000:F72F  34 01                xor    al,1
  18165.   
  18166. F000:F731            loc_ret_1419:                    ;  xref F000:F70F, F713, F721, F72D
  18167. F000:F731  C3                    retn
  18168. F000:F732            loc_1420:                    ;  xref F000:F5FF
  18169. F000:F732  D0 E4                shl    ah,1            ; Shift w/zeros fill
  18170. F000:F734  B0 55                mov    al,55h            ; 'U'
  18171. F000:F736  EE                    out    dx,al            ; port 0, DMA-1 bas&add ch 0
  18172. F000:F737  EB 00                jmp    short loc_1421        ; (F739)
  18173.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 309
  18174.  
  18175. F000:F739            loc_1421:                    ;  xref F000:F737
  18176. F000:F739  EB 00                jmp    short loc_1422        ; (F73B)
  18177. F000:F73B            loc_1422:                    ;  xref F000:F739
  18178. F000:F73B  F6 D0                not    al
  18179. F000:F73D  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  18180. F000:F73F  EB 00                jmp    short loc_1423        ; (F741)
  18181. F000:F741            loc_1423:                    ;  xref F000:F73F
  18182. F000:F741  EB 00                jmp    short loc_1424        ; (F743)
  18183. F000:F743            loc_1424:                    ;  xref F000:F741
  18184. F000:F743  EC                    in    al,dx            ; port 0, DMA-1 bas&add ch 0
  18185. F000:F744  EB 00                jmp    short loc_1425        ; (F746)
  18186. F000:F746            loc_1425:                    ;  xref F000:F744
  18187. F000:F746  EB 00                jmp    short loc_1426        ; (F748)
  18188. F000:F748            loc_1426:                    ;  xref F000:F746
  18189. F000:F748  34 55                xor    al,55h            ; 'U'
  18190. F000:F74A  75 1B                jnz    short loc_ret_1433    ; Jump if not zero
  18191. F000:F74C  B0 AA                mov    al,0AAh
  18192. F000:F74E  EE                    out    dx,al            ; port 0, DMA-1 bas&add ch 0
  18193. F000:F74F  EB 00                jmp    short loc_1427        ; (F751)
  18194. F000:F751            loc_1427:                    ;  xref F000:F74F
  18195. F000:F751  EB 00                jmp    short loc_1428        ; (F753)
  18196. F000:F753            loc_1428:                    ;  xref F000:F751
  18197. F000:F753  F6 D0                not    al
  18198. F000:F755  E6 80                out    80h,al            ; port 80h, diagnostc chkpoint
  18199. F000:F757  EB 00                jmp    short loc_1429        ; (F759)
  18200. F000:F759            loc_1429:                    ;  xref F000:F757
  18201. F000:F759  EB 00                jmp    short loc_1430        ; (F75B)
  18202. F000:F75B            loc_1430:                    ;  xref F000:F759
  18203. F000:F75B  EC                    in    al,dx            ; port 0, DMA-1 bas&add ch 0
  18204. F000:F75C  EB 00                jmp    short loc_1431        ; (F75E)
  18205. F000:F75E            loc_1431:                    ;  xref F000:F75C
  18206. F000:F75E  EB 00                jmp    short loc_1432        ; (F760)
  18207. F000:F760            loc_1432:                    ;  xref F000:F75E
  18208. F000:F760  34 AA                xor    al,0AAh
  18209. F000:F762  75 03                jnz    short loc_ret_1433    ; Jump if not zero
  18210. F000:F764  80 CC 01                or    ah,1
  18211.   
  18212. F000:F767            loc_ret_1433:                    ;  xref F000:F74A, F762
  18213. F000:F767  C3                    retn
  18214.   
  18215.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  18216.                 ;                   SUBROUTINE
  18217.                 ;
  18218.                 ;         Called from:     F000:CDE1, CDE7, CDED, CDF3, CE13, CE19, CE1F
  18219.                 ;                  CE25, CE46, CEE4, CF0A
  18220.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  18221.   
  18222.                 sub_266        proc    near
  18223. F000:F768            loc_1434:                    ;  xref F000:F4E9, F6FD
  18224. F000:F768  E6 EC                out    0ECh,al            ; port 0ECh
  18225. F000:F76A  EB 00                jmp    short loc_1435        ; (F76C)
  18226. F000:F76C            loc_1435:                    ;  xref F000:F76A
  18227. F000:F76C  EB 00                jmp    short loc_1436        ; (F76E)
  18228. F000:F76E            loc_1436:                    ;  xref F000:F76C
  18229. F000:F76E  86 C4                xchg    al,ah
  18230. F000:F770  E6 ED                out    0EDh,al            ; port 0EDh
  18231. F000:F772  EB 00                jmp    short loc_1437        ; (F774)
  18232.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 310
  18233.  
  18234. F000:F774            loc_1437:                    ;  xref F000:F772
  18235. F000:F774  EB 00                jmp    short loc_1438        ; (F776)
  18236. F000:F776            loc_1438:                    ;  xref F000:F774
  18237. F000:F776  86 C4                xchg    al,ah
  18238. F000:F778  C3                    retn
  18239.                 sub_266        endp
  18240.   
  18241.   
  18242.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  18243.                 ;                   SUBROUTINE
  18244.                 ;
  18245.                 ;         Called from:     F000:CDBB, CDC5, CDCC, CDD3, CDDA
  18246.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  18247.   
  18248.                 sub_267        proc    near
  18249. F000:F779  E6 EC                out    0ECh,al            ; port 0ECh
  18250. F000:F77B  EB 00                jmp    short loc_1439        ; (F77D)
  18251. F000:F77D            loc_1439:                    ;  xref F000:F77B
  18252. F000:F77D  EB 00                jmp    short loc_1440        ; (F77F)
  18253. F000:F77F            loc_1440:                    ;  xref F000:F77D
  18254. F000:F77F  E4 ED                in    al,0EDh            ; port 0EDh
  18255. F000:F781  EB 00                jmp    short loc_1441        ; (F783)
  18256. F000:F783            loc_1441:                    ;  xref F000:F781
  18257. F000:F783  EB 00                jmp    short loc_ret_1442    ; (F785)
  18258.   
  18259. F000:F785            loc_ret_1442:                    ;  xref F000:F783
  18260. F000:F785  C3                    retn
  18261.                 sub_267        endp
  18262.   
  18263. F000:F786            loc_1443:                    ;  xref F000:CF71, CFB1, D04F, D085
  18264.                                         ;            F50B, F5AF, F5D7
  18265. F000:F786  BA 0170                mov    dx,170h
  18266. F000:F789  EE                    out    dx,al            ; port 170h, hdsk1-write data
  18267. F000:F78A  EB 00                jmp    short loc_1444        ; (F78C)
  18268. F000:F78C            loc_1444:                    ;  xref F000:F78A
  18269. F000:F78C  EB 00                jmp    short loc_1445        ; (F78E)
  18270. F000:F78E            loc_1445:                    ;  xref F000:F78C
  18271. F000:F78E  86 C4                xchg    al,ah
  18272. F000:F790  42                    inc    dx
  18273. F000:F791  EE                    out    dx,al            ; port 171h, hdsk1-precomp cylr
  18274. F000:F792  EB 00                jmp    short loc_1446        ; (F794)
  18275. F000:F794            loc_1446:                    ;  xref F000:F792
  18276. F000:F794  EB 00                jmp    short loc_1447        ; (F796)
  18277. F000:F796            loc_1447:                    ;  xref F000:F794
  18278. F000:F796  86 C4                xchg    al,ah
  18279. F000:F798  C3                    retn
  18280. F000:F799            loc_1448:
  18281. F000:F799  BA 0170                mov    dx,170h
  18282. F000:F79C  EE                    out    dx,al            ; port 170h, hdsk1-write data
  18283. F000:F79D  EB 00                jmp    short loc_1449        ; (F79F)
  18284. F000:F79F            loc_1449:                    ;  xref F000:F79D
  18285. F000:F79F  EB 00                jmp    short loc_1450        ; (F7A1)
  18286. F000:F7A1            loc_1450:                    ;  xref F000:F79F
  18287. F000:F7A1  42                    inc    dx
  18288. F000:F7A2  EC                    in    al,dx            ; port 171h, hdsk1-error regstr
  18289. F000:F7A3  EB 00                jmp    short loc_1451        ; (F7A5)
  18290. F000:F7A5            loc_1451:                    ;  xref F000:F7A3
  18291.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 311
  18292.  
  18293. F000:F7A5  EB 00                jmp    short loc_ret_1452    ; (F7A7)
  18294.   
  18295. F000:F7A7            loc_ret_1452:                    ;  xref F000:F7A5
  18296. F000:F7A7  C3                    retn
  18297. F000:F7A8  B0 C0 E8 DC F6 BE            db    0B0h, 0C0h, 0E8h, 0DCh, 0F6h, 0BEh
  18298. F000:F7AE  0D F8 A8 01 EB 58            db    0Dh, 0F8h, 0A8h, 1, 0EBh, 58h
  18299. F000:F7B4  90 50 E8 00 96 BE            db    90h, 50h, 0E8h, 0, 96h, 0BEh
  18300. F000:F7BA  2A F8 E8 FA 95 58            db    2Ah, 0F8h, 0E8h, 0FAh, 95h, 58h
  18301. F000:F7C0  BE 13 F8 A8 02 EB            db    0BEh, 13h, 0F8h, 0A8h, 2, 0EBh
  18302. F000:F7C6  45 90 50 E8 ED 95            db    45h, 90h, 50h, 0E8h, 0EDh, 95h
  18303. F000:F7CC  BE 2A F8 E8 E7 95            db    0BEh, 2Ah, 0F8h, 0E8h, 0E7h, 95h
  18304. F000:F7D2  58 BE 19 F8 A8 04            db    58h, 0BEh, 19h, 0F8h, 0A8h, 4
  18305. F000:F7D8  EB 32 90 50 E8 DA            db    0EBh, 32h, 90h, 50h, 0E8h, 0DAh
  18306. F000:F7DE  95 BE 2A F8 E8 D4            db    95h, 0BEh, 2Ah, 0F8h, 0E8h, 0D4h
  18307. F000:F7E4  95 58 BE 1D F8 A8            db    95h, 58h, 0BEh, 1Dh, 0F8h, 0A8h
  18308. F000:F7EA  08 EB 1F 90 50 E8            db    8, 0EBh, 1Fh, 90h, 50h, 0E8h
  18309. F000:F7F0  C7 95 BE 2A F8 E8            db    0C7h, 95h, 0BEh, 2Ah, 0F8h, 0E8h
  18310. F000:F7F6  C1 95 58 BE 24 F8            db    0C1h, 95h, 58h, 0BEh, 24h, 0F8h
  18311. F000:F7FC  A8 10 EB 0C 90 50            db    0A8h, 10h, 0EBh, 0Ch, 90h, 50h
  18312. F000:F802  E8 B4 95 BE 2A F8            db    0E8h, 0B4h, 95h, 0BEh, 2Ah, 0F8h
  18313. F000:F808  E8 AE 95 58 C3 43            db    0E8h, 0AEh, 95h, 58h, 0C3h, 43h
  18314. F000:F80E  4F 4D 2D 31 00 43            db    4Fh, 4Dh, 2Dh, 31h, 0, 43h
  18315. F000:F814  4F 4D 2D 32 00 50            db    4Fh, 4Dh, 2Dh, 32h, 0, 50h
  18316. F000:F81A  52 4E 00 46 4C 4F            db    52h, 4Eh, 0, 46h, 4Ch, 4Fh
  18317. F000:F820  50 50 59 00 48 44            db    50h, 50h, 59h, 0, 48h, 44h
  18318. F000:F826  49 53 4B 00                db    49h, 53h, 4Bh, 0
  18319. F000:F82A  20 62 61 73 65 20            db    ' base address conflict', 0Dh
  18320. F000:F830  61 64 64 72 65 73
  18321. F000:F836  73 20 63 6F 6E 66
  18322. F000:F83C  6C 69 63 74 0D
  18323.   
  18324.   
  18325.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 12h ▒▒▒▒▒
  18326.                 ;
  18327.                 ;   SYSTEM MEMORY SIZE
  18328.                 ;
  18329.                 ;      Returns:      ax = number of contiguous 1K bytes blocks of memory
  18330.                 ;               from 0 to 640 K.
  18331.                 ;
  18332.                 ;      Regs used: ax
  18333.   
  18334. F000:F841            int_12h_memsiz    proc    near            ;  xref F000:FF07
  18335. F000:F841  FB                    sti                ; Enable interrupts
  18336. F000:F842  1E                    push    ds
  18337. F000:F843  6A 40                push    40h
  18338. F000:F845  1F                    pop    ds
  18339. F000:F846  A1 0013                mov    ax,main_ram_size    ; (0040:0013=280h)
  18340. F000:F849  1F                    pop    ds
  18341. F000:F84A  CF                    iret                ; Interrupt return
  18342.                 int_12h_memsiz    endp
  18343.   
  18344. F000:F84B  00 00                db    0, 0
  18345.   
  18346.   
  18347.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  18348.   
  18349. F000:F84D            int_11h_entry:                    ;  xref F000:FF05
  18350.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 312
  18351.  
  18352. F000:F84D  EB 00                jmp    short int_11h_equip    ; (F84F)
  18353.   
  18354.   
  18355.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 11h ▒▒▒▒▒
  18356.                 ;
  18357.                 ;   EQUIPMENT INSTALLED
  18358.                 ;
  18359.                 ;      Returns:      ax = equip_install word
  18360.                 ;
  18361.                 ;               15   14   13   12   11   10    9    8
  18362.                 ;            \    /       game  \          /
  18363.                 ;               # of printer  port   # of RS-232
  18364.                 ;            ports 0-3    used    ports 0-4
  18365.                 ;
  18366.                 ;            7    6    5    4    3    2    1    0
  18367.                 ;            \    /    \    /    \    /  Math   |
  18368.                 ;             # of   video mode   RAM     uP    no
  18369.                 ;            floppy  at boot up  00=16K       floppy
  18370.                 ;            drives  00=EGA      01=32K       drive
  18371.                 ;              1-4   01=CGA-40   10=48K       if 0
  18372.                 ;            if bit  10=CGA-80   11=64K
  18373.                 ;             0 = 1  11=MDA-80   (old PCs)
  18374.                 ;
  18375.                 ;               Note: bit 13 = modem on PC lap-tops
  18376.                 ;                 bit  2 = mouse on PS/2
  18377.                 ;
  18378.                 ;      Regs used: ax
  18379.   
  18380. F000:F84F            int_11h_equip    proc    near            ;  xref F000:F84D
  18381. F000:F84F  FB                    sti                ; Enable interrupts
  18382. F000:F850  1E                    push    ds
  18383. F000:F851  6A 40                push    40h
  18384. F000:F853  1F                    pop    ds
  18385. F000:F854  A1 0010                mov    ax,equip_bits        ; (0040:0010=4661h)
  18386. F000:F857  1F                    pop    ds
  18387. F000:F858  CF                    iret                ; Interrupt return
  18388.                 int_11h_equip    endp
  18389.   
  18390.   
  18391.   
  18392.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  18393.   
  18394. F000:F859            int_15h_entry:                    ;  xref F000:FF0D
  18395. F000:F859  E9 D108                jmp    int_15h_servics        ; (C964)
  18396.   
  18397.   
  18398.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 17h ▒▒▒▒▒
  18399.                 ;
  18400.                 ;   PRINTER SERVICES
  18401.                 ;
  18402.                 ;      Call with:  ah =    function code
  18403.                 ;           dx =    printer number 0-2 (some systems allow 0-3)
  18404.                 ;
  18405.                 ;      Returns:       ah =    status bits
  18406.                 ;             7      6      5      4      3     2  1        0
  18407.                 ;            not  acknow-  no   select   I/O   unused   no
  18408.                 ;            busy  ledge  paper         error    response
  18409.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 313
  18410.  
  18411.                 ;            __________from printer__________
  18412.                 ;
  18413.                 ;      Functions:
  18414.                 ;        ah = 0      Send character to printer, al = character
  18415.                 ;        ah = 1      Printer port initialization
  18416.                 ;        ah = 2      Get printer status in ah
  18417.   
  18418. F000:F85C            int_17h_printer    proc    near            ;  xref F000:EFD2
  18419. F000:F85C  FB                    sti                ; Enable interrupts
  18420. F000:F85D  53                    push    bx
  18421. F000:F85E  52                    push    dx
  18422. F000:F85F  1E                    push    ds
  18423. F000:F860  6A 40                push    40h
  18424. F000:F862  1F                    pop    ds
  18425. F000:F863  8B DA                mov    bx,dx
  18426. F000:F865  D1 E3                shl    bx,1            ; Shift w/zeros fill
  18427. F000:F867  8B 97 0008                mov    dx,[bx+8]
  18428.                         nop                ;*Fixup for MASM (M)
  18429. F000:F86B  23 D2                and    dx,dx
  18430. F000:F86D  74 6F                jz    short loc_1473        ; Jump if zero
  18431. F000:F86F  D0 EC                shr    ah,1            ; Shift w/zeros fill
  18432. F000:F871  8A E0                mov    ah,al
  18433. F000:F873  75 58                jnz    short loc_1467        ; Jump if not zero
  18434. F000:F875  72 35                jc    short loc_1460        ; Jump if carry Set
  18435. F000:F877  EE                    out    dx,al            ; port 378h, printer-2 data
  18436. F000:F878  42                    inc    dx
  18437. F000:F879  EB 00                jmp    short loc_1453        ; (F87B)
  18438. F000:F87B            loc_1453:                    ;  xref F000:F879
  18439. F000:F87B  EB 00                jmp    short loc_1454        ; (F87D)
  18440. F000:F87D            loc_1454:                    ;  xref F000:F87B
  18441. F000:F87D  EC                    in    al,dx            ; port 379h, printer-2 status
  18442. F000:F87E  A8 80                test    al,80h
  18443. F000:F880  75 07                jnz    short loc_1455        ; Jump if not zero
  18444. F000:F882  50                    push    ax
  18445. F000:F883  B8 90FE                mov    ax,90FEh
  18446. F000:F886  CD 15                int    15h            ; General services, ah=func 90h
  18447.                                         ;  device busy, al=type
  18448. F000:F888  58                    pop    ax
  18449. F000:F889            loc_1455:                    ;  xref F000:F880
  18450. F000:F889  D1 EB                shr    bx,1            ; Shift w/zeros fill
  18451. F000:F88B  8A 9F 0078                mov    bl,prn_timeout_1[bx]    ; (0040:0078=14h)
  18452. F000:F88F  32 FF                xor    bh,bh            ; Zero register
  18453. F000:F891  C1 E3 02                shl    bx,2            ; Shift w/zeros fill
  18454. F000:F894  51                    push    cx
  18455. F000:F895            loc_1456:                    ;  xref F000:F8A3
  18456. F000:F895  33 C9                xor    cx,cx            ; Zero register
  18457.   
  18458. F000:F897            locloop_1457:                    ;  xref F000:F8A0
  18459. F000:F897  EB 00                jmp    short loc_1458        ; (F899)
  18460. F000:F899            loc_1458:                    ;  xref F000:F897
  18461. F000:F899  EB 00                jmp    short loc_1459        ; (F89B)
  18462. F000:F89B            loc_1459:                    ;  xref F000:F899
  18463. F000:F89B  EC                    in    al,dx            ; port 379h, printer-2 status
  18464. F000:F89C  A8 80                test    al,80h
  18465. F000:F89E  75 19                jnz    short loc_1462        ; Jump if not zero
  18466. F000:F8A0  E2 F5                loop    locloop_1457        ; Loop if cx > 0
  18467.   
  18468.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 314
  18469.  
  18470. F000:F8A2  4B                    dec    bx
  18471. F000:F8A3  75 F0                jnz    loc_1456        ; Jump if not zero
  18472. F000:F8A5  59                    pop    cx
  18473. F000:F8A6  24 F8                and    al,0F8h
  18474. F000:F8A8  0C 01                or    al,1
  18475. F000:F8AA  EB 2E                jmp    short loc_1472        ; (F8DA)
  18476. F000:F8AC            loc_1460:                    ;  xref F000:F875
  18477. F000:F8AC  B0 08                mov    al,8
  18478. F000:F8AE  42                    inc    dx
  18479. F000:F8AF  42                    inc    dx
  18480. F000:F8B0  EE                    out    dx,al            ; port 37Bh
  18481. F000:F8B1  BB 4000                mov    bx,4000h
  18482. F000:F8B4            loc_1461:                    ;  xref F000:F8B5
  18483. F000:F8B4  4B                    dec    bx
  18484. F000:F8B5  75 FD                jnz    loc_1461        ; Jump if not zero
  18485. F000:F8B7  EB 0E                jmp    short loc_1466        ; (F8C7)
  18486. F000:F8B9            loc_1462:                    ;  xref F000:F89E
  18487. F000:F8B9  59                    pop    cx
  18488. F000:F8BA  B0 0D                mov    al,0Dh
  18489. F000:F8BC  42                    inc    dx
  18490. F000:F8BD  EB 00                jmp    short loc_1463        ; (F8BF)
  18491. F000:F8BF            loc_1463:                    ;  xref F000:F8BD
  18492. F000:F8BF  EB 00                jmp    short loc_1464        ; (F8C1)
  18493. F000:F8C1            loc_1464:                    ;  xref F000:F8BF
  18494. F000:F8C1  FA                    cli                ; Disable interrupts
  18495. F000:F8C2  EE                    out    dx,al            ; port 37Ch
  18496. F000:F8C3  EB 00                jmp    short loc_1465        ; (F8C5)
  18497. F000:F8C5            loc_1465:                    ;  xref F000:F8C3
  18498. F000:F8C5  EB 00                jmp    short loc_1466        ; (F8C7)
  18499. F000:F8C7            loc_1466:                    ;  xref F000:F8B7, F8C5
  18500. F000:F8C7  B0 0C                mov    al,0Ch
  18501. F000:F8C9  EE                    out    dx,al            ; port 37Ch
  18502. F000:F8CA  FB                    sti                ; Enable interrupts
  18503. F000:F8CB  4A                    dec    dx
  18504. F000:F8CC  4A                    dec    dx
  18505. F000:F8CD            loc_1467:                    ;  xref F000:F873
  18506. F000:F8CD  42                    inc    dx
  18507. F000:F8CE  EB 00                jmp    short loc_1468        ; (F8D0)
  18508. F000:F8D0            loc_1468:                    ;  xref F000:F8CE
  18509. F000:F8D0  EB 00                jmp    short loc_1469        ; (F8D2)
  18510. F000:F8D2            loc_1469:                    ;  xref F000:F8D0
  18511. F000:F8D2  EC                    in    al,dx            ; port 37Bh
  18512. F000:F8D3  EB 00                jmp    short loc_1470        ; (F8D5)
  18513. F000:F8D5            loc_1470:                    ;  xref F000:F8D3
  18514. F000:F8D5  EB 00                jmp    short loc_1471        ; (F8D7)
  18515. F000:F8D7            loc_1471:                    ;  xref F000:F8D5
  18516. F000:F8D7  EC                    in    al,dx            ; port 37Bh
  18517. F000:F8D8  24 F8                and    al,0F8h
  18518. F000:F8DA            loc_1472:                    ;  xref F000:F8AA
  18519. F000:F8DA  34 48                xor    al,48h            ; 'H'
  18520. F000:F8DC  86 C4                xchg    al,ah
  18521. F000:F8DE            loc_1473:                    ;  xref F000:F86D
  18522. F000:F8DE  1F                    pop    ds
  18523. F000:F8DF  5A                    pop    dx
  18524. F000:F8E0  5B                    pop    bx
  18525. F000:F8E1  CF                    iret                ; Interrupt return
  18526.                 int_17h_printer    endp
  18527.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 315
  18528.  
  18529.   
  18530.   
  18531.   
  18532.                 ; ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ int 14h ▒▒▒▒▒
  18533.                 ;
  18534.                 ;   RS-232 SERIAL PORTS    SERVICES
  18535.                 ;
  18536.                 ;      Call with: ah = sub-function number
  18537.                 ;          dx = communications number, com1 = 0
  18538.                 ;
  18539.                 ;      Returns:      ah = line status,  bit 0 = Data ready
  18540.                 ;                         bit 1 = Overrun error
  18541.                 ;                         bit 2 = Parity error
  18542.                 ;                         bit 3 = CRC framing error
  18543.                 ;                         bit 4 = Break detect
  18544.                 ;                         bit 5 = Xmit buffer register empty
  18545.                 ;                         bit 6 = Xmit shift out register empty
  18546.                 ;                         bit 7 = No response, ignore bits 0-6
  18547.                 ;
  18548.                 ;          al = modem status, bit 0 = Change in Clear To    Send
  18549.                 ;                         bit 1 = Change in Data Set    Ready
  18550.                 ;                         bit 2 = Falling edge ring detect
  18551.                 ;                         bit 3 = Change in receive detect line
  18552.                 ;                         bit 4 = Clear to Send (CTS)
  18553.                 ;                         bit 5 = Data Set Ready (DTS)
  18554.                 ;                         bit 6 = Ring detected
  18555.                 ;                         bit 7 = Receive detect line
  18556.                 ;
  18557.                 ;      Functions:
  18558.                 ;        ah = 0        Reset the specified port
  18559.                 ;              Call with:  al serial port register values
  18560.                 ;                         bits  7    6    5    4    3    2    1    0
  18561.                 ;                              --baud-rate--  -Parity- Stop  --Word--
  18562.                 ;                               000 =  110      bits       bit    size
  18563.                 ;                               001 =  150                 (bits)
  18564.                 ;                               010 =  300    00 = off  0=1
  18565.                 ;                               011 =  600    01 = odd  1=2   10 = 7
  18566.                 ;                               100 = 1200    10 = off        11 = 8
  18567.                 ;                               101 = 2400    11 = even
  18568.                 ;                               110 = 4800
  18569.                 ;                               111 = 9600
  18570.                 ;       ah = 1        Transmit a character
  18571.                 ;              Call with:  al = character to send (not changed on exit)
  18572.                 ;       ah = 2        Received a character
  18573.                 ;              Returns:    al = character received
  18574.                 ;       ah = 3        Get    status
  18575.                 ;       ah = 4        Advanced Initialization (not supported on all systems)
  18576.                 ;              Call with:  al = 0/1  no break/break
  18577.                 ;                      bh = Parity,    0 = none     3 = stick odd
  18578.                 ;                                      1 = odd      4 = stick even
  18579.                 ;                                      2 = even
  18580.                 ;                      bl = 0/1 Stop bits set to 1/2
  18581.                 ;                      ch = Word size, 0 = 5 bits   2 = 7 bits
  18582.                 ;                                      1 = 6 bits   3 = 8 bits
  18583.                 ;
  18584.                 ;                      cl = Baud rate, 0 =  110     5 =  2400
  18585.                 ;                                      1 =  150     6 =  4800
  18586.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 316
  18587.  
  18588.                 ;                                      2 =  300     7 =  9600
  18589.                 ;                                      3 =  600     8 = 19200
  18590.                 ;                                      4 = 1200
  18591.                 ;        ah = 5        Advanced port control (not supported on all    systems)
  18592.                 ;              al = 0  Get modem register
  18593.                 ;                    Returns: bl bit 0 = Data Terminal Ready (DTR)
  18594.                 ;                                bit 1 = Request To Send (RTS)
  18595.                 ;                                bit 2 = Out 1
  18596.                 ;                                bit 3 = Out 2
  18597.                 ;                                bit 4 = Loop modem
  18598.                 ;              al = 1  Set modem register
  18599.                 ;                    Call with:  bl = value for register (see above)
  18600.   
  18601. F000:F8E2            int_14h_RS232    proc    near            ;  xref F000:E739
  18602. F000:F8E2  FB                    sti                ; Enable interrupts
  18603. F000:F8E3  60                    pusha                ; Save all regs
  18604. F000:F8E4  1E                    push    ds
  18605. F000:F8E5  6A 40                push    40h
  18606. F000:F8E7  1F                    pop    ds
  18607. F000:F8E8  8B DA                mov    bx,dx
  18608. F000:F8EA  8B BF 007C                mov    di,word ptr rs232_timeout_1[bx]    ; (0040:007C=101h)
  18609. F000:F8EE  81 E7 00FF                and    di,0FFh
  18610. F000:F8F2  D1 E3                shl    bx,1            ; Shift w/zeros fill
  18611. F000:F8F4  8B 97 0000                mov    dx,[bx+0]
  18612.                         nop                ;*Fixup for MASM (M)
  18613. F000:F8F8  23 D2                and    dx,dx
  18614. F000:F8FA  74 22                jz    short loc_1480        ; Jump if zero
  18615. F000:F8FC  C1 E7 02                shl    di,2            ; Shift w/zeros fill
  18616. F000:F8FF  D0 EC                shr    ah,1            ; Shift w/zeros fill
  18617. F000:F901  74 2E                jz    short loc_1482        ; Jump if zero
  18618. F000:F903  FE CC                dec    ah
  18619. F000:F905  75 17                jnz    short loc_1480        ; Jump if not zero
  18620. F000:F907  73 18                jnc    short loc_1481        ; Jump if carry=0
  18621. F000:F909            loc_1474:                    ;  xref F000:F98A
  18622. F000:F909  83 C2 05                add    dx,5
  18623. F000:F90C  EB 00                jmp    short loc_1475        ; (F90E)
  18624. F000:F90E            loc_1475:                    ;  xref F000:F90C
  18625. F000:F90E  EB 00                jmp    short loc_1476        ; (F910)
  18626. F000:F910            loc_1476:                    ;  xref F000:F90E
  18627. F000:F910  EC                    in    al,dx            ; port 3FDh, RS232-1 line stat
  18628. F000:F911  8A E0                mov    ah,al
  18629. F000:F913  42                    inc    dx
  18630. F000:F914  EB 00                jmp    short loc_1477        ; (F916)
  18631. F000:F916            loc_1477:                    ;  xref F000:F914
  18632. F000:F916  EB 00                jmp    short loc_1478        ; (F918)
  18633. F000:F918            loc_1478:                    ;  xref F000:F916
  18634. F000:F918  EC                    in    al,dx            ; port 3FEh, RS232-1 modem stat
  18635. F000:F919            loc_1479:                    ;  xref F000:F92F, F942, F947
  18636. F000:F919  8B EC                mov    bp,sp
  18637. F000:F91B  89 46 10                mov    [bp+10h],ax
  18638. F000:F91E            loc_1480:                    ;  xref F000:F8FA, F905
  18639. F000:F91E  1F                    pop    ds
  18640. F000:F91F  61                    popa                ; Restore all regs
  18641. F000:F920  CF                    iret                ; Interrupt return
  18642.                 int_14h_RS232    endp
  18643.   
  18644. F000:F921            loc_1481:                    ;  xref F000:F907
  18645.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 317
  18646.  
  18647. F000:F921  B0 01                mov    al,1
  18648. F000:F923  BB 0120                mov    bx,120h
  18649. F000:F926  E8 0064                call    sub_268            ; (F98D)
  18650. F000:F929  75 19                jnz    short loc_1483        ; Jump if not zero
  18651. F000:F92B  80 E4 1E                and    ah,1Eh
  18652. F000:F92E  EC                    in    al,dx            ; port 0, DMA-1 bas&add ch 0
  18653. F000:F92F  EB E8                jmp    short loc_1479        ; (F919)
  18654. F000:F931            loc_1482:                    ;  xref F000:F901
  18655. F000:F931  73 16                jnc    short loc_1484        ; Jump if carry=0
  18656. F000:F933  50                    push    ax
  18657. F000:F934  B0 03                mov    al,3
  18658. F000:F936  BB 2030                mov    bx,2030h
  18659. F000:F939  E8 0051                call    sub_268            ; (F98D)
  18660. F000:F93C  5B                    pop    bx
  18661. F000:F93D  8A C3                mov    al,bl
  18662. F000:F93F  75 03                jnz    short loc_1483        ; Jump if not zero
  18663. F000:F941  EE                    out    dx,al            ; port 0, DMA-1 bas&add ch 0
  18664. F000:F942  EB D5                jmp    short loc_1479        ; (F919)
  18665. F000:F944            loc_1483:                    ;  xref F000:F929, F93F
  18666. F000:F944  80 CC 80                or    ah,80h
  18667. F000:F947  EB D0                jmp    short loc_1479        ; (F919)
  18668. F000:F949            loc_1484:                    ;  xref F000:F931
  18669. F000:F949  8A E0                mov    ah,al
  18670. F000:F94B  24 E0                and    al,0E0h
  18671. F000:F94D  B9 0417                mov    cx,417h
  18672. F000:F950  74 0C                jz    short loc_1486        ; Jump if zero
  18673. F000:F952  C0 E8 05                shr    al,5            ; Shift w/zeros fill
  18674. F000:F955  B9 0600                mov    cx,600h
  18675. F000:F958            loc_1485:                    ;  xref F000:F95C
  18676. F000:F958  D1 E9                shr    cx,1            ; Shift w/zeros fill
  18677. F000:F95A  FE C8                dec    al
  18678. F000:F95C  75 FA                jnz    loc_1485        ; Jump if not zero
  18679. F000:F95E            loc_1486:                    ;  xref F000:F950
  18680. F000:F95E  B0 80                mov    al,80h
  18681. F000:F960  83 C2 03                add    dx,3
  18682. F000:F963  EE                    out    dx,al            ; port 3, DMA-1 bas&cnt ch 1
  18683. F000:F964  52                    push    dx
  18684. F000:F965  8A C5                mov    al,ch
  18685. F000:F967  4A                    dec    dx
  18686. F000:F968  4A                    dec    dx
  18687. F000:F969  EB 00                jmp    short loc_1487        ; (F96B)
  18688. F000:F96B            loc_1487:                    ;  xref F000:F969
  18689. F000:F96B  EB 00                jmp    short loc_1488        ; (F96D)
  18690. F000:F96D            loc_1488:                    ;  xref F000:F96B
  18691. F000:F96D  EE                    out    dx,al            ; port 1, DMA-1 bas&cnt ch 0
  18692. F000:F96E  8A C1                mov    al,cl
  18693. F000:F970  4A                    dec    dx
  18694. F000:F971  EB 00                jmp    short loc_1489        ; (F973)
  18695. F000:F973            loc_1489:                    ;  xref F000:F971
  18696. F000:F973  EB 00                jmp    short loc_1490        ; (F975)
  18697. F000:F975            loc_1490:                    ;  xref F000:F973
  18698. F000:F975  EE                    out    dx,al            ; port 0, DMA-1 bas&add ch 0
  18699. F000:F976  8A C4                mov    al,ah
  18700. F000:F978  24 1F                and    al,1Fh
  18701. F000:F97A  5A                    pop    dx
  18702. F000:F97B  EB 00                jmp    short loc_1491        ; (F97D)
  18703. F000:F97D            loc_1491:                    ;  xref F000:F97B
  18704.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 318
  18705.  
  18706. F000:F97D  EB 00                jmp    short loc_1492        ; (F97F)
  18707. F000:F97F            loc_1492:                    ;  xref F000:F97D
  18708. F000:F97F  EE                    out    dx,al            ; port 3, DMA-1 bas&cnt ch 1
  18709. F000:F980  2A C0                sub    al,al
  18710. F000:F982  4A                    dec    dx
  18711. F000:F983  4A                    dec    dx
  18712. F000:F984  EB 00                jmp    short loc_1493        ; (F986)
  18713. F000:F986            loc_1493:                    ;  xref F000:F984
  18714. F000:F986  EB 00                jmp    short loc_1494        ; (F988)
  18715. F000:F988            loc_1494:                    ;  xref F000:F986
  18716. F000:F988  EE                    out    dx,al            ; port 1, DMA-1 bas&cnt ch 0
  18717. F000:F989  4A                    dec    dx
  18718. F000:F98A  E9 FF7C                jmp    loc_1474        ; (F909)
  18719.   
  18720.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  18721.                 ;                   SUBROUTINE
  18722.                 ;
  18723.                 ;         Called from:     F000:F926, F939
  18724.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  18725.   
  18726.                 sub_268        proc    near
  18727. F000:F98D  52                    push    dx
  18728. F000:F98E  83 C2 04                add    dx,4
  18729. F000:F991  EE                    out    dx,al            ; port 4, DMA-1 bas&add ch 2
  18730. F000:F992  42                    inc    dx
  18731. F000:F993  42                    inc    dx
  18732. F000:F994  57                    push    di
  18733. F000:F995  E8 000B                call    sub_269            ; (F9A3)
  18734. F000:F998  5F                    pop    di
  18735. F000:F999  75 06                jnz    short loc_1495        ; Jump if not zero
  18736. F000:F99B  8A DF                mov    bl,bh
  18737. F000:F99D  4A                    dec    dx
  18738. F000:F99E  E8 0002                call    sub_269            ; (F9A3)
  18739. F000:F9A1            loc_1495:                    ;  xref F000:F999
  18740. F000:F9A1  5A                    pop    dx
  18741. F000:F9A2  C3                    retn
  18742.                 sub_268        endp
  18743.   
  18744.   
  18745.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  18746.                 ;                   SUBROUTINE
  18747.                 ;
  18748.                 ;         Called from:     F000:F995, F99E
  18749.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  18750.   
  18751.                 sub_269        proc    near
  18752. F000:F9A3            loc_1496:                    ;  xref F000:F9B5
  18753. F000:F9A3  33 C9                xor    cx,cx            ; Zero register
  18754.   
  18755. F000:F9A5            locloop_1497:                    ;  xref F000:F9B2
  18756. F000:F9A5  EB 00                jmp    short loc_1498        ; (F9A7)
  18757. F000:F9A7            loc_1498:                    ;  xref F000:F9A5
  18758. F000:F9A7  EB 00                jmp    short loc_1499        ; (F9A9)
  18759. F000:F9A9            loc_1499:                    ;  xref F000:F9A7
  18760. F000:F9A9  EC                    in    al,dx            ; port 6, DMA-1 bas&add ch 3
  18761. F000:F9AA  8A E0                mov    ah,al
  18762. F000:F9AC  22 C3                and    al,bl
  18763.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 319
  18764.  
  18765. F000:F9AE  3A C3                cmp    al,bl
  18766. F000:F9B0  74 06                je    short loc_ret_1500    ; Jump if equal
  18767. F000:F9B2  E2 F1                loop    locloop_1497        ; Loop if cx > 0
  18768.   
  18769. F000:F9B4  4F                    dec    di
  18770. F000:F9B5  75 EC                jnz    loc_1496        ; Jump if not zero
  18771. F000:F9B7  4F                    dec    di
  18772.   
  18773. F000:F9B8            loc_ret_1500:                    ;  xref F000:F9B0
  18774. F000:F9B8  C3                    retn
  18775.                 sub_269        endp
  18776.   
  18777. F000:F9B9            loc_1501:                    ;  xref F000:E154
  18778. F000:F9B9  2E: 0F 01 16 E268            lgdt    qword ptr cs:data_152    ; (F000:E268=60h) Load global des tbl
  18779. F000:F9BF  B8 0040                mov    ax,seg_b
  18780. F000:F9C2  8E D8                mov    ds,ax
  18781. F000:F9C4  8E C0                mov    es,ax
  18782. F000:F9C6  8E D0                mov    ss,ax
  18783. F000:F9C8  66| C1 C8 10                ror    eax,10h            ; Rotate
  18784. F000:F9CC  8B C8                mov    cx,ax
  18785. F000:F9CE  0F 20 C0                mov    eax,cr0            ; Mov reg-control reg
  18786. F000:F9D1  66| 25 7FFFFFFE            and    eax,7FFFFFFEh
  18787. F000:F9D7  90                    nop                ;
  18788. F000:F9D8  90                    nop                ;
  18789. F000:F9D9  0F 22 C0                mov    cr0,eax            ; Mov reg-control reg
  18790. F000:F9DC  EA F000F9E1                jmp    far ptr loc_1502    ; (F9E1)
  18791. F000:F9E1            loc_1502:                    ;  xref F000:F9DC
  18792. F000:F9E1  2E: 0F 01 1E E2B8            lidt    qword ptr cs:data_157    ; (F000:E2B8=0FFFFh) Load int des tabl
  18793. F000:F9E7  2E: 0F 01 16 E2A0            lgdt    qword ptr cs:data_155    ; (F000:E2A0=0FFFFh) Load global des t
  18794. F000:F9ED  8B C1                mov    ax,cx
  18795. F000:F9EF  66| C1 C8 10                ror    eax,10h            ; Rotate
  18796. F000:F9F3  E9 E665                jmp    loc_1197        ; (E05B)
  18797. F000:F9F6  000A[00]                db    10 dup (0)
  18798. F000:FA00  68 50 50 01 01 01            db    68h, 50h, 50h, 1, 1, 1
  18799. F000:FA06  01 01 2A B2 0A 62            db    1, 1, 2Ah, 0B2h, 0Ah, 62h
  18800. F000:FA0C  AA 0A A2 4A 7A 72            db    0AAh, 0Ah, 0A2h, 4Ah, 7Ah, 72h
  18801. F000:FA12  01 1A 7A 82 CA 61            db    1, 1Ah, 7Ah, 82h, 0CAh, 61h
  18802. F000:FA18  01 72 7A A2 01 32            db    1, 72h, 7Ah, 0A2h, 1, 32h
  18803. F000:FA1E  7A 92 01 9A 0A 62            db    7Ah, 92h, 1, 9Ah, 0Ah, 62h
  18804. F000:FA24  2A 68 50 01 01 01            db    2Ah, 68h, 50h, 1, 1, 1
  18805. F000:FA2A  01 01 41 1A 49 01            db    1, 1, 41h, 1Ah, 49h, 1
  18806. F000:FA30  0A 6B 2B 93 4B 1B            db    0Ah, 6Bh, 2Bh, 93h, 4Bh, 1Bh
  18807. F000:FA36  0B 73 01 6A 2B 3B            db    0Bh, 73h, 1, 6Ah, 2Bh, 3Bh
  18808. F000:FA3C  0B A3 93 2B 73 23            db    0Bh, 0A3h, 93h, 2Bh, 73h, 23h
  18809. F000:FA42  9B 01 4A 73 1B            db    9Bh, 1, 4Ah, 73h, 1Bh
  18810. F000:FA47  71 61 68 50 54            db    71h, 61h, 68h, 50h, 54h
  18811. F000:FA4C            loc_1503:                    ;  xref F000:FA62
  18812. F000:FA4C  61                    popa                ; Restore all regs
  18813. F000:FA4D  C3                    retn
  18814. F000:FA4E  60 BE 70 FF B9 4C            db    60h, 0BEh, 70h, 0FFh, 0B9h, 4Ch
  18815. F000:FA54  00 BB FF F9                db    0, 0BBh, 0FFh, 0F9h
  18816.   
  18817. F000:FA58            locloop_1504:                    ;  xref F000:FA60
  18818. F000:FA58  2E: AC                lods byte ptr cs:[si]        ; String [si] to al
  18819. F000:FA5A  43                    inc    bx
  18820. F000:FA5B  F6 D0                not    al
  18821. F000:FA5D  2E: 32 07                xor    al,cs:[bx]
  18822.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 320
  18823.  
  18824. F000:FA60  E1 F6                loopz    locloop_1504        ; Loop if zf=1, cx>0
  18825.   
  18826. F000:FA62  74 E8                jz    loc_1503        ; Jump if zero
  18827. F000:FA64  C3                    retn
  18828. F000:FA65  0009[FF]                db    9 dup (0FFh)
  18829. F000:FA6E  00 00 00 00 00 00    video_char_tbl    db    0, 0, 0, 0, 0, 0    ; Video characters in graphic modes
  18830. F000:FA74  00 00 3C 42 A5 81            db    0, 0, 3Ch, 42h, 0A5h, 81h
  18831. F000:FA7A  BD 99 42 3C 3C 7E            db    0BDh, 99h, 42h, 3Ch, 3Ch, 7Eh
  18832. F000:FA80  DB FF C3 E7 7E 3C            db    0DBh, 0FFh, 0C3h, 0E7h, 7Eh, 3Ch
  18833. F000:FA86  44 EE FE FE 7C 38            db    44h, 0EEh, 0FEh, 0FEh, 7Ch, 38h
  18834. F000:FA8C  10 00 10 38 7C FE            db    10h, 0, 10h, 38h, 7Ch, 0FEh
  18835. F000:FA92  7C 38 10 00 18 3C            db    7Ch, 38h, 10h, 0, 18h, 3Ch
  18836. F000:FA98  DB FF DB 18 3C 00            db    0DBh, 0FFh, 0DBh, 18h, 3Ch, 0
  18837. F000:FA9E  18 3C 7E FF 7E 18            db    18h, 3Ch, 7Eh, 0FFh, 7Eh, 18h
  18838. F000:FAA4  3C 00 00 00 3C 3C            db    3Ch, 0, 0, 0, 3Ch, 3Ch
  18839. F000:FAAA  3C 3C 00 00 FF FF            db    3Ch, 3Ch, 0, 0, 0FFh, 0FFh
  18840. F000:FAB0  C3 C3 C3 C3 FF FF            db    0C3h, 0C3h, 0C3h, 0C3h, 0FFh, 0FFh
  18841. F000:FAB6  00 7E 42 42 42 42            db    0, 7Eh, 42h, 42h, 42h, 42h
  18842. F000:FABC  7E 00 FF 81 BD BD            db    7Eh, 0, 0FFh, 81h, 0BDh, 0BDh
  18843. F000:FAC2  BD BD 81 FF 0F 07            db    0BDh, 0BDh, 81h, 0FFh, 0Fh, 7
  18844. F000:FAC8  07 7D CC CC CC 78            db    7, 7Dh, 0CCh, 0CCh, 0CCh, 78h
  18845. F000:FACE  78 CC CC CC 78 30            db    78h, 0CCh, 0CCh, 0CCh, 78h, 30h
  18846. F000:FAD4  FC 30 1F 33 3F 30            db    0FCh, 30h, 1Fh, 33h, 3Fh, 30h
  18847. F000:FADA  30 70 F0 E0 3F 63            db    30h, 70h, 0F0h, 0E0h, 3Fh, 63h
  18848. F000:FAE0  7F 63 63 67 E6 C0            db    7Fh, 63h, 63h, 67h, 0E6h, 0C0h
  18849. F000:FAE6  DB DB 3C E7 E7 3C            db    0DBh, 0DBh, 3Ch, 0E7h, 0E7h, 3Ch
  18850. F000:FAEC  DB DB C0 F0 F8 FE            db    0DBh, 0DBh, 0C0h, 0F0h, 0F8h, 0FEh
  18851. F000:FAF2  F8 F0 C0 00 06 1E            db    0F8h, 0F0h, 0C0h, 0, 6, 1Eh
  18852. F000:FAF8  3E FE 3E 1E 06 00            db    3Eh, 0FEh, 3Eh, 1Eh, 6, 0
  18853. F000:FAFE  30 78 FC 30 30 FC            db    30h, 78h, 0FCh, 30h, 30h, 0FCh
  18854. F000:FB04  78 30 6C 6C 6C 6C            db    78h, 30h, 6Ch, 6Ch, 6Ch, 6Ch
  18855. F000:FB0A  6C 00 6C 00 7F DB            db    6Ch, 0, 6Ch, 0, 7Fh, 0DBh
  18856. F000:FB10  DB DB 7B 1B 1B 00            db    0DBh, 0DBh, 7Bh, 1Bh, 1Bh, 0
  18857. F000:FB16  3C 60 3C 66 66 3C            db    3Ch, 60h, 3Ch, 66h, 66h, 3Ch
  18858. F000:FB1C  06 3C 00 00 00 00            db    6, 3Ch, 0, 0, 0, 0
  18859. F000:FB22  FE FE FE 00 18 3C            db    0FEh, 0FEh, 0FEh, 0, 18h, 3Ch
  18860. F000:FB28  7E 18 7E 3C 18 7E            db    7Eh, 18h, 7Eh, 3Ch, 18h, 7Eh
  18861. F000:FB2E  30 78 FC 30 30 30            db    30h, 78h, 0FCh, 30h, 30h, 30h
  18862. F000:FB34  30 00 30 30 30 30            db    30h, 0, 30h, 30h, 30h, 30h
  18863. F000:FB3A  FC 78 30 00 00 08            db    0FCh, 78h, 30h, 0, 0, 8
  18864. F000:FB40  0C FE 0C 08 00 00            db    0Ch, 0FEh, 0Ch, 8, 0, 0
  18865. F000:FB46  00 20 60 FE 60 20            db    0, 20h, 60h, 0FEh, 60h, 20h
  18866. F000:FB4C  00 00 00 00 C0 C0            db    0, 0, 0, 0, 0C0h, 0C0h
  18867. F000:FB52  FE 00 00 00 00 24            db    0FEh, 0, 0, 0, 0, 24h
  18868. F000:FB58  42 FF 42 24 00 00            db    42h, 0FFh, 42h, 24h, 0, 0
  18869. F000:FB5E  00 10 38 7C FE FE            db    0, 10h, 38h, 7Ch, 0FEh, 0FEh
  18870. F000:FB64  00 00 00 FE FE 7C            db    0, 0, 0, 0FEh, 0FEh, 7Ch
  18871. F000:FB6A  38 10 00 00 00 00            db    38h, 10h, 0, 0, 0, 0
  18872. F000:FB70  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  18873. F000:FB76  18 18 18 18 18 00            db    18h, 18h, 18h, 18h, 18h, 0
  18874. F000:FB7C  18 00 CC CC CC 00            db    18h, 0, 0CCh, 0CCh, 0CCh, 0
  18875. F000:FB82  00 00 00 00 36 6C            db    0, 0, 0, 0, 36h, 6Ch
  18876. F000:FB88  FE 6C FE 6C D8 00            db    0FEh, 6Ch, 0FEh, 6Ch, 0D8h, 0
  18877. F000:FB8E  18 7E C0 7C 06 FC            db    18h, 7Eh, 0C0h, 7Ch, 6, 0FCh
  18878. F000:FB94  30 00 C2 C6 0C 18            db    30h, 0, 0C2h, 0C6h, 0Ch, 18h
  18879. F000:FB9A  30 66 C6 00 38 6C            db    30h, 66h, 0C6h, 0, 38h, 6Ch
  18880. F000:FBA0  38 70 DE CC 76 00            db    38h, 70h, 0DEh, 0CCh, 76h, 0
  18881.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 321
  18882.  
  18883. F000:FBA6  30 30 60 00 00 00            db    30h, 30h, 60h, 0, 0, 0
  18884. F000:FBAC  00 00 0C 18 30 30            db    0, 0, 0Ch, 18h, 30h, 30h
  18885. F000:FBB2  30 18 0C 00 30 18            db    30h, 18h, 0Ch, 0, 30h, 18h
  18886. F000:FBB8  0C 0C 0C 18 30 00            db    0Ch, 0Ch, 0Ch, 18h, 30h, 0
  18887. F000:FBBE  00 6C 38 FE 38 6C            db    0, 6Ch, 38h, 0FEh, 38h, 6Ch
  18888. F000:FBC4  00 00 00 18 18 7E            db    0, 0, 0, 18h, 18h, 7Eh
  18889. F000:FBCA  18 18 00 00 00 00            db    18h, 18h, 0, 0, 0, 0
  18890. F000:FBD0  00 00 00 18 18 30            db    0, 0, 0, 18h, 18h, 30h
  18891. F000:FBD6  00 00 00 7E 00 00            db    0, 0, 0, 7Eh, 0, 0
  18892. F000:FBDC  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  18893. F000:FBE2  00 18 18 00 02 06            db    0, 18h, 18h, 0, 2, 6
  18894. F000:FBE8  0C 18 30 60 C0 00            db    0Ch, 18h, 30h, 60h, 0C0h, 0
  18895. F000:FBEE  7C CE DE F6 E6 C6            db    7Ch, 0CEh, 0DEh, 0F6h, 0E6h, 0C6h
  18896. F000:FBF4  7C 00 18 38 18 18            db    7Ch, 0, 18h, 38h, 18h, 18h
  18897. F000:FBFA  18 18 7E 00 7C C6            db    18h, 18h, 7Eh, 0, 7Ch, 0C6h
  18898. F000:FC00  06 1C 70 C6 FE 00            db    6, 1Ch, 70h, 0C6h, 0FEh, 0
  18899. F000:FC06  7C C6 06 1C 06 C6            db    7Ch, 0C6h, 6, 1Ch, 6, 0C6h
  18900. F000:FC0C  7C 00 1C 3C 6C CC            db    7Ch, 0, 1Ch, 3Ch, 6Ch, 0CCh
  18901. F000:FC12  FE 0C 0C 00 FE C0            db    0FEh, 0Ch, 0Ch, 0, 0FEh, 0C0h
  18902. F000:FC18  FC 06 06 C6 7C 00            db    0FCh, 6, 6, 0C6h, 7Ch, 0
  18903. F000:FC1E  3C 60 C0 FC C6 C6            db    3Ch, 60h, 0C0h, 0FCh, 0C6h, 0C6h
  18904. F000:FC24  7C 00 FE C6 0C 18            db    7Ch, 0, 0FEh, 0C6h, 0Ch, 18h
  18905. F000:FC2A  30 30 30 00 7C C6            db    30h, 30h, 30h, 0, 7Ch, 0C6h
  18906. F000:FC30  C6 7C C6 C6 7C 00            db    0C6h, 7Ch, 0C6h, 0C6h, 7Ch, 0
  18907. F000:FC36  7C C6 C6 7E 06 0C            db    7Ch, 0C6h, 0C6h, 7Eh, 6, 0Ch
  18908. F000:FC3C  78 00 00 18 18 00            db    78h, 0, 0, 18h, 18h, 0
  18909. F000:FC42  00 18 18 00 00 18            db    0, 18h, 18h, 0, 0, 18h
  18910. F000:FC48  18 00 00 18 18 30            db    18h, 0, 0, 18h, 18h, 30h
  18911. F000:FC4E  0C 18 30 60 30 18            db    0Ch, 18h, 30h, 60h, 30h, 18h
  18912. F000:FC54  0C 00 00 00 7E 00            db    0Ch, 0, 0, 0, 7Eh, 0
  18913. F000:FC5A  00 7E 00 00 30 18            db    0, 7Eh, 0, 0, 30h, 18h
  18914. F000:FC60  0C 06 0C 18 30 00            db    0Ch, 6, 0Ch, 18h, 30h, 0
  18915. F000:FC66  3C 66 06 0C 18 00            db    3Ch, 66h, 6, 0Ch, 18h, 0
  18916. F000:FC6C  18 00 7C C6 DE DE            db    18h, 0, 7Ch, 0C6h, 0DEh, 0DEh
  18917. F000:FC72  DE C0 7C 00 38 6C            db    0DEh, 0C0h, 7Ch, 0, 38h, 6Ch
  18918. F000:FC78  C6 C6 FE C6 C6 00            db    0C6h, 0C6h, 0FEh, 0C6h, 0C6h, 0
  18919. F000:FC7E  FC 6E 66 7C 66 6E            db    0FCh, 6Eh, 66h, 7Ch, 66h, 6Eh
  18920. F000:FC84  FC 00 3E 62 C0 C0            db    0FCh, 0, 3Eh, 62h, 0C0h, 0C0h
  18921. F000:FC8A  C0 62 3E 00 F8 6E            db    0C0h, 62h, 3Eh, 0, 0F8h, 6Eh
  18922. F000:FC90  66 66 66 6E F8 00            db    66h, 66h, 66h, 6Eh, 0F8h, 0
  18923. F000:FC96  FE 62 60 78 60 62            db    0FEh, 62h, 60h, 78h, 60h, 62h
  18924. F000:FC9C  FE 00 FE 62 60 78            db    0FEh, 0, 0FEh, 62h, 60h, 78h
  18925. F000:FCA2  60 60 F0 00 3E 62            db    60h, 60h, 0F0h, 0, 3Eh, 62h
  18926. F000:FCA8  C0 C0 CE 66 3E 00            db    0C0h, 0C0h, 0CEh, 66h, 3Eh, 0
  18927. F000:FCAE  C6 C6 C6 FE C6 C6            db    0C6h, 0C6h, 0C6h, 0FEh, 0C6h, 0C6h
  18928. F000:FCB4  C6 00 3C 18 18 18            db    0C6h, 0, 3Ch, 18h, 18h, 18h
  18929. F000:FCBA  18 18 3C 00 1E 0C            db    18h, 18h, 3Ch, 0, 1Eh, 0Ch
  18930. F000:FCC0  0C 0C 0C CC 78 00            db    0Ch, 0Ch, 0Ch, 0CCh, 78h, 0
  18931. F000:FCC6  E6 66 6C 78 78 6C            db    0E6h, 66h, 6Ch, 78h, 78h, 6Ch
  18932. F000:FCCC  E6 00 F0 60 60 60            db    0E6h, 0, 0F0h, 60h, 60h, 60h
  18933. F000:FCD2  60 66 FE 00 C6 EE            db    60h, 66h, 0FEh, 0, 0C6h, 0EEh
  18934. F000:FCD8  FE D6 C6 C6 C6 00            db    0FEh, 0D6h, 0C6h, 0C6h, 0C6h, 0
  18935. F000:FCDE  C6 E6 F6 FE DE CE            db    0C6h, 0E6h, 0F6h, 0FEh, 0DEh, 0CEh
  18936. F000:FCE4  C6 00 7C C6 C6 C6            db    0C6h, 0, 7Ch, 0C6h, 0C6h, 0C6h
  18937. F000:FCEA  C6 C6 7C 00 FC 66            db    0C6h, 0C6h, 7Ch, 0, 0FCh, 66h
  18938. F000:FCF0  66 7C 60 60 E0 00            db    66h, 7Ch, 60h, 60h, 0E0h, 0
  18939. F000:FCF6  7C C6 C6 D6 DE 7C            db    7Ch, 0C6h, 0C6h, 0D6h, 0DEh, 7Ch
  18940.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 322
  18941.  
  18942. F000:FCFC  06 00 FC 66 66 7C            db    6, 0, 0FCh, 66h, 66h, 7Ch
  18943. F000:FD02  78 6C E6 00 7C C6            db    78h, 6Ch, 0E6h, 0, 7Ch, 0C6h
  18944. F000:FD08  E0 38 0E C6 7C 00            db    0E0h, 38h, 0Eh, 0C6h, 7Ch, 0
  18945. F000:FD0E  7E 5A 18 18 18 18            db    7Eh, 5Ah, 18h, 18h, 18h, 18h
  18946. F000:FD14  3C 00 66 66 66 66            db    3Ch, 0, 66h, 66h, 66h, 66h
  18947. F000:FD1A  66 66 3C 00 66 66            db    66h, 66h, 3Ch, 0, 66h, 66h
  18948. F000:FD20  66 66 66 3C 18 00            db    66h, 66h, 66h, 3Ch, 18h, 0
  18949. F000:FD26  C6 C6 C6 D6 FE FE            db    0C6h, 0C6h, 0C6h, 0D6h, 0FEh, 0FEh
  18950. F000:FD2C  C6 00 C6 6C 38 38            db    0C6h, 0, 0C6h, 6Ch, 38h, 38h
  18951. F000:FD32  6C C6 C6 00 66 66            db    6Ch, 0C6h, 0C6h, 0, 66h, 66h
  18952. F000:FD38  66 3C 18 18 3C 00            db    66h, 3Ch, 18h, 18h, 3Ch, 0
  18953. F000:FD3E  FE CC 18 30 60 C6            db    0FEh, 0CCh, 18h, 30h, 60h, 0C6h
  18954. F000:FD44  FE 00 3C 30 30 30            db    0FEh, 0, 3Ch, 30h, 30h, 30h
  18955. F000:FD4A  30 30 3C 00 80 C0            db    30h, 30h, 3Ch, 0, 80h, 0C0h
  18956. F000:FD50  60 30 18 0C 06 00            db    60h, 30h, 18h, 0Ch, 6, 0
  18957. F000:FD56  3C 0C 0C 0C 0C 0C            db    3Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch
  18958. F000:FD5C  3C 00 18 3C 66 00            db    3Ch, 0, 18h, 3Ch, 66h, 0
  18959. F000:FD62  00 00 00 00 00 00            db    0, 0, 0, 0, 0, 0
  18960. F000:FD68  00 00 00 00 00 FF            db    0, 0, 0, 0, 0, 0FFh
  18961. F000:FD6E  18 18 0C 00 00 00            db    18h, 18h, 0Ch, 0, 0, 0
  18962. F000:FD74  00 00 00 00 38 0C            db    0, 0, 0, 0, 38h, 0Ch
  18963. F000:FD7A  7C CC 76 00 60 60            db    7Ch, 0CCh, 76h, 0, 60h, 60h
  18964. F000:FD80  60 7C 66 66 DC 00            db    60h, 7Ch, 66h, 66h, 0DCh, 0
  18965. F000:FD86  00 00 7C C4 C0 C4            db    0, 0, 7Ch, 0C4h, 0C0h, 0C4h
  18966. F000:FD8C  7C 00 0C 0C 0C 7C            db    7Ch, 0, 0Ch, 0Ch, 0Ch, 7Ch
  18967. F000:FD92  CC CC 76 00 00 00            db    0CCh, 0CCh, 76h, 0, 0, 0
  18968. F000:FD98  78 CC FC C0 7C 00            db    78h, 0CCh, 0FCh, 0C0h, 7Ch, 0
  18969. F000:FD9E  38 6C 60 F8 60 60            db    38h, 6Ch, 60h, 0F8h, 60h, 60h
  18970. F000:FDA4  E0 00 00 00 76 CC            db    0E0h, 0, 0, 0, 76h, 0CCh
  18971. F000:FDAA  CC 7C 0C 7C E0 60            db    0CCh, 7Ch, 0Ch, 7Ch, 0E0h, 60h
  18972. F000:FDB0  60 7C 66 66 66 00            db    60h, 7Ch, 66h, 66h, 66h, 0
  18973. F000:FDB6  30 00 70 30 30 30            db    30h, 0, 70h, 30h, 30h, 30h
  18974. F000:FDBC  38 00 0C 00 1C 0C            db    38h, 0, 0Ch, 0, 1Ch, 0Ch
  18975. F000:FDC2  0C CC CC 78 E0 60            db    0Ch, 0CCh, 0CCh, 78h, 0E0h, 60h
  18976. F000:FDC8  66 6C 78 6C 66 00            db    66h, 6Ch, 78h, 6Ch, 66h, 0
  18977. F000:FDCE  70 30 30 30 30 30            db    70h, 30h, 30h, 30h, 30h, 30h
  18978. F000:FDD4  38 00 00 00 CC FE            db    38h, 0, 0, 0, 0CCh, 0FEh
  18979. F000:FDDA  D6 C6 C6 00 00 00            db    0D6h, 0C6h, 0C6h, 0, 0, 0
  18980. F000:FDE0  DC 66 66 66 66 00            db    0DCh, 66h, 66h, 66h, 66h, 0
  18981. F000:FDE6  00 00 3C 66 66 66            db    0, 0, 3Ch, 66h, 66h, 66h
  18982. F000:FDEC  3C 00 00 00 DC 66            db    3Ch, 0, 0, 0, 0DCh, 66h
  18983. F000:FDF2  66 7C 60 E0 00 00            db    66h, 7Ch, 60h, 0E0h, 0, 0
  18984. F000:FDF8  76 CC CC 7C 0C 0E            db    76h, 0CCh, 0CCh, 7Ch, 0Ch, 0Eh
  18985. F000:FDFE  00 00 DC 76 60 60            db    0, 0, 0DCh, 76h, 60h, 60h
  18986. F000:FE04  60 00 00 00 78 C0            db    60h, 0, 0, 0, 78h, 0C0h
  18987. F000:FE0A  78 0C 78 00 10 30            db    78h, 0Ch, 78h, 0, 10h, 30h
  18988. F000:FE10  78 30 30 34 18 00            db    78h, 30h, 30h, 34h, 18h, 0
  18989. F000:FE16  00 00 CC CC CC CC            db    0, 0, 0CCh, 0CCh, 0CCh, 0CCh
  18990. F000:FE1C  F6 00 00 00 66 66            db    0F6h, 0, 0, 0, 66h, 66h
  18991. F000:FE22  66 3C 18 00 00 00            db    66h, 3Ch, 18h, 0, 0, 0
  18992. F000:FE28  C6 C6 D6 FE 6C 00            db    0C6h, 0C6h, 0D6h, 0FEh, 6Ch, 0
  18993. F000:FE2E  00 00 CC 78 30 78            db    0, 0, 0CCh, 78h, 30h, 78h
  18994. F000:FE34  CC 00 00 00 CC CC            db    0CCh, 0, 0, 0, 0CCh, 0CCh
  18995. F000:FE3A  CC 7C 0C 7C 00 00            db    0CCh, 7Ch, 0Ch, 7Ch, 0, 0
  18996. F000:FE40  FC 18 30 60 FC 00            db    0FCh, 18h, 30h, 60h, 0FCh, 0
  18997. F000:FE46  0E 18 18 70 18 18            db    0Eh, 18h, 18h, 70h, 18h, 18h
  18998. F000:FE4C  0E 00 30 30 30 00            db    0Eh, 0, 30h, 30h, 30h, 0
  18999.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 323
  19000.  
  19001. F000:FE52  30 30 30 00 70 18            db    30h, 30h, 30h, 0, 70h, 18h
  19002. F000:FE58  18 0E 18 18 70 00            db    18h, 0Eh, 18h, 18h, 70h, 0
  19003. F000:FE5E  00 76 DC 00 00 00            db    0, 76h, 0DCh, 0, 0, 0
  19004. F000:FE64  00 00 10 38 6C C6            db    0, 0, 10h, 38h, 6Ch, 0C6h
  19005. F000:FE6A  C6 C6 FE 00                db    0C6h, 0C6h, 0FEh, 0
  19006.   
  19007.   
  19008.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  19009.   
  19010. F000:FE6E            int_1Ah_entry:                    ;  xref F000:FF17
  19011. F000:FE6E  E9 EEC0                jmp    int_1Ah_RTC        ; (ED31)
  19012. F000:FE71  FF FF FF FF FF 5F            db    0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 5Fh
  19013. F000:FE77  F2 5B 7F CA CA F2            db    0F2h, 5Bh, 7Fh, 0CAh, 0CAh, 0F2h
  19014. F000:FE7D  7F EE 5A 62 5A 2E            db    7Fh, 0EEh, 5Ah, 62h, 5Ah, 2Eh
  19015. F000:FE83  7A 4E 7F B2 1A 32            db    7Ah, 4Eh, 7Fh, 0B2h, 1Ah, 32h
  19016. F000:FE89  2E 6A 4A 32 4F 7F            db    2Eh, 6Ah, 4Ah, 32h, 4Fh, 7Fh
  19017. F000:FE8F  DA C6 EE DA FA            db    0DAh, 0C6h, 0EEh, 0DAh, 0FAh
  19018. F000:FE94  4F 7F 3B 3B 4B 3B            db    'O', 7Fh, ';;K;3K'
  19019. F000:FE9A  33 4B
  19020. F000:FE9C  1F 2B 11 24 00 01            db    1Fh, 2Bh, 11h, 24h, 0, 1
  19021. F000:FEA2  06 13 90                db    6, 13h, 90h
  19022.   
  19023.   
  19024.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  19025.   
  19026. F000:FEA5            int_8_entry:                    ;  xref F000:FEF3
  19027. F000:FEA5  E9 EE3F                jmp    int_8_timer        ; (ECE7)
  19028. F000:FEA8  50 A0 12 00 A8 20            db    50h, 0A0h, 12h, 0, 0A8h, 20h
  19029. F000:FEAE  58 74 03 E9 9C E2            db    58h, 74h, 3, 0E9h, 9Ch, 0E2h
  19030. F000:FEB4  50 52 EB 0B 90 EC            db    50h, 52h, 0EBh, 0Bh, 90h, 0ECh
  19031. F000:FEBA  34 01 24 01 EB 00            db    34h, 1, 24h, 1, 0EBh, 0
  19032. F000:FEC0  EB 00                db    0EBh, 0
  19033. F000:FEC2            loc_1505:
  19034. F000:FEC2  EE                    out    dx,al            ; port 0, DMA-1 bas&add ch 0
  19035. F000:FEC3            loc_1506:
  19036. F000:FEC3  5A                    pop    dx
  19037. F000:FEC4  B0 20                mov    al,20h            ; ' '
  19038. F000:FEC6  E6 20                out    20h,al            ; port 20h, 8259-1 int command
  19039.                                         ;  al = 20h, end of interrupt
  19040. F000:FEC8  58                    pop    ax
  19041. F000:FEC9  CF                    iret                ; Interrupt return
  19042. F000:FECA  0019[00]                db    25 dup (0)
  19043. F000:FEE3  7D EA 7D EA C3 E2            db    7Dh, 0EAh, 7Dh, 0EAh, 0C3h, 0E2h
  19044. F000:FEE9  7D EA 7D EA 54 FF            db    7Dh, 0EAh, 7Dh, 0EAh, 54h, 0FFh
  19045. F000:FEEF  29 EB 7D EA                db    29h, 0EBh, 7Dh, 0EAh
  19046. F000:FEF3  FEA5            int_vec_table    dw    offset int_8_entry    ; Initial interrupt vectors
  19047. F000:FEF5  E987                    dw    offset int_9_entry
  19048. F000:FEF7  EA7D                    dw    offset int_unused
  19049. F000:FEF9  EA7D                    dw    offset int_unused
  19050. F000:FEFB  EA7D                    dw    offset int_unused
  19051. F000:FEFD  EA7D                    dw    offset int_unused
  19052. F000:FEFF  EF57                    dw    offset int_0Eh_entry
  19053. F000:FF01  FF53                    dw    offset int_return
  19054. F000:FF03  F065                    dw    offset int_10h_entry
  19055. F000:FF05  F84D                    dw    offset int_11h_entry
  19056. F000:FF07  F841                    dw    offset int_12h_memsiz
  19057. F000:FF09  EC59                    dw    offset int_13h_entry
  19058.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 324
  19059.  
  19060. F000:FF0B  E739                    dw    offset int_14h_entry
  19061. F000:FF0D  F859                    dw    offset int_15h_entry
  19062. F000:FF0F  E82E                    dw    offset int_16h_entry
  19063. F000:FF11  EFD2                    dw    offset int_17h_entry
  19064. F000:FF13  E000                    dw    offset int_18h_entry
  19065. F000:FF15  E6F2                    dw    offset int_19h_entry
  19066. F000:FF17  FE6E                    dw    offset int_1Ah_entry
  19067. F000:FF19  FF53                    dw    offset int_return
  19068. F000:FF1B  FF53                    dw    offset int_return
  19069. F000:FF1D  F0A4            int_data_table    dw    offset video_hdwr_tbl1
  19070. F000:FF1F  EFC7                    dw    offset dsk_info_1
  19071. F000:FF21  0000            video_ptr    dw    0
  19072. F000:FF23  EA28            int_vec_table_2    dw    offset int_70h_clock
  19073. F000:FF25  EEC7                    dw    offset int_71h_LAN
  19074. F000:FF27  EA7D                    dw    offset int_unused
  19075. F000:FF29  EA7D                    dw    offset int_unused
  19076. F000:FF2B  EA7D                    dw    offset int_unused
  19077. F000:FF2D  EED0                    dw    offset int_75h_80287
  19078. F000:FF2F  E845                    dw    offset int_76h_hddone
  19079. F000:FF31  FF53                    dw    offset int_return
  19080. F000:FF33  001D[00]                db    29 dup (0)
  19081. F000:FF50  30 10 00                db    30h, 10h, 0
  19082.   
  19083.                 ;██████████████████████████████████████████████████████████████████████████
  19084.                 ;
  19085.                 ;            External Entry Point
  19086.                 ;
  19087.                 ;██████████████████████████████████████████████████████████████████████████
  19088.   
  19089. F000:FF53            int_return    proc    near            ;  xref F000:FF01, FF19, FF1B, FF31
  19090. F000:FF53  CF                    iret                ; Interrupt return
  19091.                 int_return    endp
  19092.   
  19093.   
  19094.   
  19095.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  19096.   
  19097. F000:FF54            int_5_entry:
  19098. F000:FF54  E9 ED05                jmp    int_5_prn_scrn        ; (EC5C)
  19099. F000:FF57  00 00                db    0, 0
  19100. F000:FF59  28 43 29 31 39 39            db    '(C)1990AMI,404-263-8181'
  19101. F000:FF5F  30 41 4D 49 2C 34
  19102. F000:FF65  30 34 2D 32 36 33
  19103. F000:FF6B  2D 38 31 38 31
  19104. F000:FF70  97 AF AF FE FE FE            db    97h, 0AFh, 0AFh, 0FEh, 0FEh, 0FEh
  19105. F000:FF76  FE FE D5 4D F5 9D            db    0FEh, 0FEh, 0D5h, 4Dh, 0F5h, 9Dh
  19106. F000:FF7C  55 F5 5D B5 85 8D            db    55h, 0F5h, 5Dh, 0B5h, 85h, 8Dh
  19107. F000:FF82  FE E5 85 7D 35 9E            db    0FEh, 0E5h, 85h, 7Dh, 35h, 9Eh
  19108. F000:FF88  FE 8D 85 5D FE CD            db    0FEh, 8Dh, 85h, 5Dh, 0FEh, 0CDh
  19109. F000:FF8E  85 6D FE 65 F5 9D            db    85h, 6Dh, 0FEh, 65h, 0F5h, 9Dh
  19110. F000:FF94  D5 97 AF FE FE FE            db    0D5h, 97h, 0AFh, 0FEh, 0FEh, 0FEh
  19111. F000:FF9A  FE FE BE E5 B6 FE            db    0FEh, 0FEh, 0BEh, 0E5h, 0B6h, 0FEh
  19112. F000:FFA0  F5 94 D4 6C B4 E4            db    0F5h, 94h, 0D4h, 6Ch, 0B4h, 0E4h
  19113. F000:FFA6  F4 8C FE 95 D4 C4            db    0F4h, 8Ch, 0FEh, 95h, 0D4h, 0C4h
  19114. F000:FFAC  F4 5C 6C D4 8C DC            db    0F4h, 5Ch, 6Ch, 0D4h, 8Ch, 0DCh
  19115. F000:FFB2  64 FE B5 8C E4 8E            db    64h, 0FEh, 0B5h, 8Ch, 0E4h, 8Eh
  19116. F000:FFB8  9E 97 AF AB                db    9Eh, 97h, 0AFh, 0ABh
  19117.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 325
  19118.  
  19119. F000:FFBC  000C[FF]                db    12 dup (0FFh)
  19120. F000:FFC8  5F F2 5B 7F CA CA            db    5Fh, 0F2h, 5Bh, 7Fh, 0CAh, 0CAh
  19121. F000:FFCE  F2 7F EE 5A 62 5A            db    0F2h, 7Fh, 0EEh, 5Ah, 62h, 5Ah
  19122. F000:FFD4  2E 7A 4E 7F B2 1A            db    2Eh, 7Ah, 4Eh, 7Fh, 0B2h, 1Ah
  19123. F000:FFDA  32 2E 6A 4A 32 4F            db    32h, 2Eh, 6Ah, 4Ah, 32h, 4Fh
  19124. F000:FFE0  7F DA C6 EE DA FA            db    7Fh, 0DAh, 0C6h, 0EEh, 0DAh, 0FAh
  19125. F000:FFE6  4F 7F 3B 3B 4B 3B            db    'O', 7Fh, ';;K;3K'
  19126. F000:FFEC  33 4B
  19127. F000:FFEE  1F 2B                db    1Fh, 2Bh
  19128.   
  19129.   
  19130.                 ; ══════ BIOS EXTERNAL ENTRY POINT ═══════════════════════════════════════
  19131.   
  19132. F000:FFF0            power_on_reset:                    ;  xref F000:C086
  19133. F000:FFF0  EA F000E05B                jmp    far ptr loc_1197    ; (E05B)
  19134. F000:FFF5  30 38 2F 33 30 2F    rom_versn_date    db    '08/30/90', 0        ; BIOS version date code
  19135. F000:FFFB  39 30 00
  19136. F000:FFFE  FC            model_type    db    0FCh            ; Model  FFh = PC
  19137.                                         ;        FEh = 1st XT
  19138.                                         ;        FBh = later XTs
  19139.                                         ;        FCh = AT type (286/386)
  19140.                                         ;        FAh = models 25/30
  19141.                                         ;        F9h = IBM lap-tops
  19142.                                         ;        F8h = models 70/80 (80386)
  19143. F000:FFFF  00            model_sub_type    db    0
  19144.   
  19145.                 seg_d        ends
  19146.   
  19147.   
  19148.   
  19149.                         end
  19150.      bios.lst        BIOS ROM Analysis             Sourcer Listing v2.14     7-Apr-92   3:44 pm   Page 326
  19151.  
  19152.   
  19153.                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ CROSS REFERENCE - KEY ENTRY POINTS ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  19154.   
  19155.                     seg:off    type       label
  19156.                    ---- ----   ----   ---------------
  19157.                    F000:806C   near   system_reset
  19158.                    F000:853C   near   int_10h_video
  19159.                    F000:8FC4   near   int_19h_bootup
  19160.                    F000:9B00   near   int_9_keyboard
  19161.                    F000:A07C   near   int_16h_keybd
  19162.                    F000:AE26   near   int_13h_floppy
  19163.                    F000:C964   near   int_15h_servics
  19164.                    F000:E000   extn   int_18h_entry
  19165.                    F000:E005   near   int_18h_basic
  19166.                    F000:E2C3   extn   int_2_entry
  19167.                    F000:E6F2   extn   int_19h_entry
  19168.                    F000:E739   extn   int_14h_entry
  19169.                    F000:E82E   extn   int_16h_entry
  19170.                    F000:E831   near   int_0Eh_floppy
  19171.                    F000:E845   near   int_76h_hddone
  19172.                    F000:E987   extn   int_9_entry
  19173.                    F000:E98A   near   int_2_NMI
  19174.                    F000:EA28   near   int_70h_clock
  19175.                    F000:EA7D   near   int_unused
  19176.                    F000:EB29   near   int_6_badopcode
  19177.                    F000:EC59   extn   int_13h_entry
  19178.                    F000:EC5C   near   int_5_prn_scrn
  19179.                    F000:ECE7   near   int_8_timer
  19180.                    F000:ED31   near   int_1Ah_RTC
  19181.                    F000:EEC7   near   int_71h_LAN
  19182.                    F000:EED0   near   int_75h_80287
  19183.                    F000:EF57   extn   int_0Eh_entry
  19184.                    F000:EFD2   extn   int_17h_entry
  19185.                    F000:F065   extn   int_10h_entry
  19186.                    F000:F841   near   int_12h_memsiz
  19187.                    F000:F84D   extn   int_11h_entry
  19188.                    F000:F84F   near   int_11h_equip
  19189.                    F000:F859   extn   int_15h_entry
  19190.                    F000:F85C   near   int_17h_printer
  19191.                    F000:F8E2   near   int_14h_RS232
  19192.                    F000:FE6E   extn   int_1Ah_entry
  19193.                    F000:FEA5   extn   int_8_entry
  19194.                    F000:FF53   near   int_return
  19195.                    F000:FF54   extn   int_5_entry
  19196.                    F000:FFF0   extn   power_on_reset
  19197.   
  19198.